Skip to content

Commit 8722959

Browse files
authored
Make WASM path configurable + Update IFC library (#21683)
* Make WASM path configurable + Update IFC library * Make the example work again * Add missing ";"
1 parent f2e4e0f commit 8722959

File tree

4 files changed

+63
-19
lines changed

4 files changed

+63
-19
lines changed

examples/jsm/loaders/IFCLoader.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ class IFCLoader extends Loader {
171171

172172
}
173173

174-
}
174+
setWasmPath(path){
175+
ifcAPI.SetWasmPath(path);
176+
}
177+
};
175178

176179
export { IFCLoader };

examples/jsm/loaders/ifc/web-ifc-api.js

Lines changed: 58 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ var __commonJS = (callback, module) => () => {
66
return module.exports;
77
};
88

9+
let WasmPath = "";
10+
911
// dist/web-ifc.js
1012
var require_web_ifc = __commonJS((exports, module) => {
1113
var WebIFCWasm2 = function() {
@@ -539,8 +541,7 @@ var require_web_ifc = __commonJS((exports, module) => {
539541
function isFileURI(filename) {
540542
return hasPrefix(filename, fileURIPrefix);
541543
}
542-
var path = import.meta.url.substring(0, import.meta.url.lastIndexOf("/")+1);
543-
var wasmBinaryFile = path + "web-ifc.wasm";
544+
var wasmBinaryFile = WasmPath + "web-ifc.wasm";
544545
if (!isDataURI(wasmBinaryFile)) {
545546
wasmBinaryFile = locateFile(wasmBinaryFile);
546547
}
@@ -576,7 +577,7 @@ var require_web_ifc = __commonJS((exports, module) => {
576577
function receiveInstance(instance, module2) {
577578
var exports3 = instance.exports;
578579
Module["asm"] = exports3;
579-
wasmTable = Module["asm"]["L"];
580+
wasmTable = Module["asm"]["P"];
580581
removeRunDependency("wasm-instantiate");
581582
}
582583
addRunDependency("wasm-instantiate");
@@ -4111,6 +4112,36 @@ var require_web_ifc = __commonJS((exports, module) => {
41114112
emval_handle_array[handle].refcount += 1;
41124113
}
41134114
}
4115+
function __emval_new_array() {
4116+
return __emval_register([]);
4117+
}
4118+
var emval_symbols = {};
4119+
function getStringOrSymbol(address) {
4120+
var symbol = emval_symbols[address];
4121+
if (symbol === void 0) {
4122+
return readLatin1String(address);
4123+
} else {
4124+
return symbol;
4125+
}
4126+
}
4127+
function __emval_new_cstring(v) {
4128+
return __emval_register(getStringOrSymbol(v));
4129+
}
4130+
function __emval_new_object() {
4131+
return __emval_register({});
4132+
}
4133+
function requireHandle(handle) {
4134+
if (!handle) {
4135+
throwBindingError("Cannot use deleted val. handle = " + handle);
4136+
}
4137+
return emval_handle_array[handle].value;
4138+
}
4139+
function __emval_set_property(handle, key2, value) {
4140+
handle = requireHandle(handle);
4141+
key2 = requireHandle(key2);
4142+
value = requireHandle(value);
4143+
handle[key2] = value;
4144+
}
41144145
function requireRegisteredType(rawType, humanName) {
41154146
var impl = registeredTypes[rawType];
41164147
if (impl === void 0) {
@@ -4575,43 +4606,43 @@ var require_web_ifc = __commonJS((exports, module) => {
45754606
__ATINIT__.push({func: function() {
45764607
___wasm_call_ctors();
45774608
}});
4578-
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};
4609+
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};
45794610
var asm = createWasm();
45804611
var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() {
4581-
return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["M"]).apply(null, arguments);
4612+
return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["Q"]).apply(null, arguments);
45824613
};
45834614
var _main = Module["_main"] = function() {
4584-
return (_main = Module["_main"] = Module["asm"]["N"]).apply(null, arguments);
4615+
return (_main = Module["_main"] = Module["asm"]["R"]).apply(null, arguments);
4616+
};
4617+
var _malloc = Module["_malloc"] = function() {
4618+
return (_malloc = Module["_malloc"] = Module["asm"]["S"]).apply(null, arguments);
45854619
};
45864620
var ___getTypeName = Module["___getTypeName"] = function() {
4587-
return (___getTypeName = Module["___getTypeName"] = Module["asm"]["O"]).apply(null, arguments);
4621+
return (___getTypeName = Module["___getTypeName"] = Module["asm"]["T"]).apply(null, arguments);
45884622
};
45894623
var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function() {
4590-
return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["P"]).apply(null, arguments);
4624+
return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["U"]).apply(null, arguments);
45914625
};
45924626
var ___errno_location = Module["___errno_location"] = function() {
4593-
return (___errno_location = Module["___errno_location"] = Module["asm"]["Q"]).apply(null, arguments);
4627+
return (___errno_location = Module["___errno_location"] = Module["asm"]["V"]).apply(null, arguments);
45944628
};
45954629
var _free = Module["_free"] = function() {
4596-
return (_free = Module["_free"] = Module["asm"]["R"]).apply(null, arguments);
4597-
};
4598-
var _malloc = Module["_malloc"] = function() {
4599-
return (_malloc = Module["_malloc"] = Module["asm"]["S"]).apply(null, arguments);
4630+
return (_free = Module["_free"] = Module["asm"]["W"]).apply(null, arguments);
46004631
};
46014632
var dynCall_jiji = Module["dynCall_jiji"] = function() {
4602-
return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["T"]).apply(null, arguments);
4633+
return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["X"]).apply(null, arguments);
46034634
};
46044635
var dynCall_viijii = Module["dynCall_viijii"] = function() {
4605-
return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["U"]).apply(null, arguments);
4636+
return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["Y"]).apply(null, arguments);
46064637
};
46074638
var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = function() {
4608-
return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["V"]).apply(null, arguments);
4639+
return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["Z"]).apply(null, arguments);
46094640
};
46104641
var dynCall_iiiiij = Module["dynCall_iiiiij"] = function() {
4611-
return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["W"]).apply(null, arguments);
4642+
return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["_"]).apply(null, arguments);
46124643
};
46134644
var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = function() {
4614-
return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["X"]).apply(null, arguments);
4645+
return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["$"]).apply(null, arguments);
46154646
};
46164647
Module["addRunDependency"] = addRunDependency;
46174648
Module["removeRunDependency"] = removeRunDependency;
@@ -4761,6 +4792,12 @@ var IfcAPI = class {
47614792
GetGeometry(modelID, geometryExpressID) {
47624793
return this.wasmModule.GetGeometry(modelID, geometryExpressID);
47634794
}
4795+
GetLine(modelID, expressID) {
4796+
return this.wasmModule.GetLine(modelID, expressID);
4797+
}
4798+
GetLineIDsWithType(modelID, type) {
4799+
return this.wasmModule.GetLineIDsWithType(modelID, type);
4800+
}
47644801
SetGeometryTransformation(modelID, transformationMatrix) {
47654802
if (transformationMatrix.length != 16) {
47664803
console.log(`Bad transformation matrix size: ${transformationMatrix.length}`);
@@ -4786,6 +4823,9 @@ var IfcAPI = class {
47864823
LoadAllGeometry(modelID) {
47874824
return this.wasmModule.LoadAllGeometry(modelID);
47884825
}
4826+
SetWasmPath(path){
4827+
WasmPath = path;
4828+
}
47894829
};
47904830
export {
47914831
IfcAPI,
1.69 KB
Binary file not shown.

examples/webgl_loader_ifc.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161

6262
//Setup IFC Loader
6363
const ifcLoader = new IFCLoader();
64+
ifcLoader.setWasmPath("jsm/loaders/ifc/");
6465
ifcLoader.load( 'models/ifc/rac_advanced_sample_project.ifc', function ( model ) {
6566

6667
scene.add( model );

0 commit comments

Comments
 (0)