diff --git a/examples/jsm/loaders/IFCLoader.js b/examples/jsm/loaders/IFCLoader.js index 2150a7972ae9ad5015a90ccd4aaceed1ce52b755..6b2fe4d00eeb3aa0554408075975ed7058f1d836 100644 --- a/examples/jsm/loaders/IFCLoader.js +++ b/examples/jsm/loaders/IFCLoader.js @@ -171,6 +171,9 @@ class IFCLoader extends Loader { } -} + setWasmPath(path){ + ifcAPI.SetWasmPath(path); + } +}; export { IFCLoader }; diff --git a/examples/jsm/loaders/ifc/web-ifc-api.js b/examples/jsm/loaders/ifc/web-ifc-api.js index 57440cda30548b023699cc2439ba1c66589343e4..c5ea0e61e637ce680473d94ac60391a660ae9619 100644 --- a/examples/jsm/loaders/ifc/web-ifc-api.js +++ b/examples/jsm/loaders/ifc/web-ifc-api.js @@ -6,6 +6,8 @@ var __commonJS = (callback, module) => () => { return module.exports; }; +let WasmPath = ""; + // dist/web-ifc.js var require_web_ifc = __commonJS((exports, module) => { var WebIFCWasm2 = function() { @@ -539,8 +541,7 @@ var require_web_ifc = __commonJS((exports, module) => { function isFileURI(filename) { return hasPrefix(filename, fileURIPrefix); } - var path = import.meta.url.substring(0, import.meta.url.lastIndexOf("/")+1); - var wasmBinaryFile = path + "web-ifc.wasm"; + var wasmBinaryFile = WasmPath + "web-ifc.wasm"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } @@ -576,7 +577,7 @@ var require_web_ifc = __commonJS((exports, module) => { function receiveInstance(instance, module2) { var exports3 = instance.exports; Module["asm"] = exports3; - wasmTable = Module["asm"]["L"]; + wasmTable = Module["asm"]["P"]; removeRunDependency("wasm-instantiate"); } addRunDependency("wasm-instantiate"); @@ -4111,6 +4112,36 @@ var require_web_ifc = __commonJS((exports, module) => { emval_handle_array[handle].refcount += 1; } } + function __emval_new_array() { + return __emval_register([]); + } + var emval_symbols = {}; + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === void 0) { + return readLatin1String(address); + } else { + return symbol; + } + } + function __emval_new_cstring(v) { + return __emval_register(getStringOrSymbol(v)); + } + function __emval_new_object() { + return __emval_register({}); + } + function requireHandle(handle) { + if (!handle) { + throwBindingError("Cannot use deleted val. handle = " + handle); + } + return emval_handle_array[handle].value; + } + function __emval_set_property(handle, key2, value) { + handle = requireHandle(handle); + key2 = requireHandle(key2); + value = requireHandle(value); + handle[key2] = value; + } function requireRegisteredType(rawType, humanName) { var impl = registeredTypes[rawType]; if (impl === void 0) { @@ -4575,43 +4606,43 @@ var require_web_ifc = __commonJS((exports, module) => { __ATINIT__.push({func: function() { ___wasm_call_ctors(); }}); - var asmLibraryArg = {t: ___assert_fail, E: ___sys_ioctl, F: ___sys_open, u: __embind_finalize_value_array, j: __embind_finalize_value_object, H: __embind_register_bool, m: __embind_register_class, l: __embind_register_class_constructor, d: __embind_register_class_function, G: __embind_register_emval, q: __embind_register_float, i: __embind_register_function, f: __embind_register_integer, e: __embind_register_memory_view, r: __embind_register_std_string, n: __embind_register_std_wstring, v: __embind_register_value_array, c: __embind_register_value_array_element, k: __embind_register_value_object, g: __embind_register_value_object_field, I: __embind_register_void, J: __emval_decref, K: __emval_incref, s: __emval_take_value, b: _abort, C: _clock_gettime, y: _emscripten_memcpy_big, h: _emscripten_resize_heap, A: _environ_get, B: _environ_sizes_get, p: _fd_close, D: _fd_read, w: _fd_seek, o: _fd_write, a: wasmMemory, x: _setTempRet0, z: _strftime_l}; + var asmLibraryArg = {t: ___assert_fail, I: ___sys_ioctl, J: ___sys_open, N: __embind_finalize_value_array, r: __embind_finalize_value_object, L: __embind_register_bool, n: __embind_register_class, o: __embind_register_class_constructor, d: __embind_register_class_function, K: __embind_register_emval, w: __embind_register_float, l: __embind_register_function, h: __embind_register_integer, g: __embind_register_memory_view, x: __embind_register_std_string, q: __embind_register_std_wstring, O: __embind_register_value_array, e: __embind_register_value_array_element, s: __embind_register_value_object, i: __embind_register_value_object_field, M: __embind_register_void, c: __emval_decref, k: __emval_incref, y: __emval_new_array, p: __emval_new_cstring, z: __emval_new_object, j: __emval_set_property, f: __emval_take_value, b: _abort, G: _clock_gettime, C: _emscripten_memcpy_big, m: _emscripten_resize_heap, E: _environ_get, F: _environ_sizes_get, v: _fd_close, H: _fd_read, A: _fd_seek, u: _fd_write, a: wasmMemory, B: _setTempRet0, D: _strftime_l}; var asm = createWasm(); var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() { - return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["M"]).apply(null, arguments); + return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["Q"]).apply(null, arguments); }; var _main = Module["_main"] = function() { - return (_main = Module["_main"] = Module["asm"]["N"]).apply(null, arguments); + return (_main = Module["_main"] = Module["asm"]["R"]).apply(null, arguments); + }; + var _malloc = Module["_malloc"] = function() { + return (_malloc = Module["_malloc"] = Module["asm"]["S"]).apply(null, arguments); }; var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["O"]).apply(null, arguments); + return (___getTypeName = Module["___getTypeName"] = Module["asm"]["T"]).apply(null, arguments); }; var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function() { - return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["P"]).apply(null, arguments); + return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["U"]).apply(null, arguments); }; var ___errno_location = Module["___errno_location"] = function() { - return (___errno_location = Module["___errno_location"] = Module["asm"]["Q"]).apply(null, arguments); + return (___errno_location = Module["___errno_location"] = Module["asm"]["V"]).apply(null, arguments); }; var _free = Module["_free"] = function() { - return (_free = Module["_free"] = Module["asm"]["R"]).apply(null, arguments); - }; - var _malloc = Module["_malloc"] = function() { - return (_malloc = Module["_malloc"] = Module["asm"]["S"]).apply(null, arguments); + return (_free = Module["_free"] = Module["asm"]["W"]).apply(null, arguments); }; var dynCall_jiji = Module["dynCall_jiji"] = function() { - return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["T"]).apply(null, arguments); + return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["X"]).apply(null, arguments); }; var dynCall_viijii = Module["dynCall_viijii"] = function() { - return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["U"]).apply(null, arguments); + return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["Y"]).apply(null, arguments); }; var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = function() { - return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["V"]).apply(null, arguments); + return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["Z"]).apply(null, arguments); }; var dynCall_iiiiij = Module["dynCall_iiiiij"] = function() { - return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["W"]).apply(null, arguments); + return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["_"]).apply(null, arguments); }; var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = function() { - return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["X"]).apply(null, arguments); + return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["$"]).apply(null, arguments); }; Module["addRunDependency"] = addRunDependency; Module["removeRunDependency"] = removeRunDependency; @@ -4761,6 +4792,12 @@ var IfcAPI = class { GetGeometry(modelID, geometryExpressID) { return this.wasmModule.GetGeometry(modelID, geometryExpressID); } + GetLine(modelID, expressID) { + return this.wasmModule.GetLine(modelID, expressID); + } + GetLineIDsWithType(modelID, type) { + return this.wasmModule.GetLineIDsWithType(modelID, type); + } SetGeometryTransformation(modelID, transformationMatrix) { if (transformationMatrix.length != 16) { console.log(`Bad transformation matrix size: ${transformationMatrix.length}`); @@ -4786,6 +4823,9 @@ var IfcAPI = class { LoadAllGeometry(modelID) { return this.wasmModule.LoadAllGeometry(modelID); } + SetWasmPath(path){ + WasmPath = path; + } }; export { IfcAPI, diff --git a/examples/jsm/loaders/ifc/web-ifc.wasm b/examples/jsm/loaders/ifc/web-ifc.wasm index 686044f09faef9ae99fdafd663cb3728c87e4c73..f87db7f2a450188cb7b2397b9001fc50c800670c 100644 Binary files a/examples/jsm/loaders/ifc/web-ifc.wasm and b/examples/jsm/loaders/ifc/web-ifc.wasm differ diff --git a/examples/webgl_loader_ifc.html b/examples/webgl_loader_ifc.html index 880b4556b00d09dc67a4b3ebb896026943a813e7..cc36294b711c54f5eec12a4c151ff43cfd9eeeb5 100644 --- a/examples/webgl_loader_ifc.html +++ b/examples/webgl_loader_ifc.html @@ -61,6 +61,7 @@ //Setup IFC Loader const ifcLoader = new IFCLoader(); + ifcLoader.setWasmPath("jsm/loaders/ifc/"); ifcLoader.load( 'models/ifc/rac_advanced_sample_project.ifc', function ( model ) { scene.add( model );