未验证 提交 87229596 编写于 作者: A Antonio González Viegas 提交者: GitHub

Make WASM path configurable + Update IFC library (#21683)

* Make WASM path configurable + Update IFC library

* Make the example work again

* Add missing ";"
上级 f2e4e0fe
...@@ -171,6 +171,9 @@ class IFCLoader extends Loader { ...@@ -171,6 +171,9 @@ class IFCLoader extends Loader {
} }
} setWasmPath(path){
ifcAPI.SetWasmPath(path);
}
};
export { IFCLoader }; export { IFCLoader };
...@@ -6,6 +6,8 @@ var __commonJS = (callback, module) => () => { ...@@ -6,6 +6,8 @@ var __commonJS = (callback, module) => () => {
return module.exports; return module.exports;
}; };
let WasmPath = "";
// dist/web-ifc.js // dist/web-ifc.js
var require_web_ifc = __commonJS((exports, module) => { var require_web_ifc = __commonJS((exports, module) => {
var WebIFCWasm2 = function() { var WebIFCWasm2 = function() {
...@@ -539,8 +541,7 @@ var require_web_ifc = __commonJS((exports, module) => { ...@@ -539,8 +541,7 @@ var require_web_ifc = __commonJS((exports, module) => {
function isFileURI(filename) { function isFileURI(filename) {
return hasPrefix(filename, fileURIPrefix); return hasPrefix(filename, fileURIPrefix);
} }
var path = import.meta.url.substring(0, import.meta.url.lastIndexOf("/")+1); var wasmBinaryFile = WasmPath + "web-ifc.wasm";
var wasmBinaryFile = path + "web-ifc.wasm";
if (!isDataURI(wasmBinaryFile)) { if (!isDataURI(wasmBinaryFile)) {
wasmBinaryFile = locateFile(wasmBinaryFile); wasmBinaryFile = locateFile(wasmBinaryFile);
} }
...@@ -576,7 +577,7 @@ var require_web_ifc = __commonJS((exports, module) => { ...@@ -576,7 +577,7 @@ var require_web_ifc = __commonJS((exports, module) => {
function receiveInstance(instance, module2) { function receiveInstance(instance, module2) {
var exports3 = instance.exports; var exports3 = instance.exports;
Module["asm"] = exports3; Module["asm"] = exports3;
wasmTable = Module["asm"]["L"]; wasmTable = Module["asm"]["P"];
removeRunDependency("wasm-instantiate"); removeRunDependency("wasm-instantiate");
} }
addRunDependency("wasm-instantiate"); addRunDependency("wasm-instantiate");
...@@ -4111,6 +4112,36 @@ var require_web_ifc = __commonJS((exports, module) => { ...@@ -4111,6 +4112,36 @@ var require_web_ifc = __commonJS((exports, module) => {
emval_handle_array[handle].refcount += 1; 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) { function requireRegisteredType(rawType, humanName) {
var impl = registeredTypes[rawType]; var impl = registeredTypes[rawType];
if (impl === void 0) { if (impl === void 0) {
...@@ -4575,43 +4606,43 @@ var require_web_ifc = __commonJS((exports, module) => { ...@@ -4575,43 +4606,43 @@ var require_web_ifc = __commonJS((exports, module) => {
__ATINIT__.push({func: function() { __ATINIT__.push({func: function() {
___wasm_call_ctors(); ___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 asm = createWasm();
var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() { 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() { 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() { 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() { 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() { 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() { var _free = Module["_free"] = function() {
return (_free = Module["_free"] = Module["asm"]["R"]).apply(null, arguments); return (_free = Module["_free"] = Module["asm"]["W"]).apply(null, arguments);
};
var _malloc = Module["_malloc"] = function() {
return (_malloc = Module["_malloc"] = Module["asm"]["S"]).apply(null, arguments);
}; };
var dynCall_jiji = Module["dynCall_jiji"] = function() { 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() { 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() { 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() { 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() { 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["addRunDependency"] = addRunDependency;
Module["removeRunDependency"] = removeRunDependency; Module["removeRunDependency"] = removeRunDependency;
...@@ -4761,6 +4792,12 @@ var IfcAPI = class { ...@@ -4761,6 +4792,12 @@ var IfcAPI = class {
GetGeometry(modelID, geometryExpressID) { GetGeometry(modelID, geometryExpressID) {
return this.wasmModule.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) { SetGeometryTransformation(modelID, transformationMatrix) {
if (transformationMatrix.length != 16) { if (transformationMatrix.length != 16) {
console.log(`Bad transformation matrix size: ${transformationMatrix.length}`); console.log(`Bad transformation matrix size: ${transformationMatrix.length}`);
...@@ -4786,6 +4823,9 @@ var IfcAPI = class { ...@@ -4786,6 +4823,9 @@ var IfcAPI = class {
LoadAllGeometry(modelID) { LoadAllGeometry(modelID) {
return this.wasmModule.LoadAllGeometry(modelID); return this.wasmModule.LoadAllGeometry(modelID);
} }
SetWasmPath(path){
WasmPath = path;
}
}; };
export { export {
IfcAPI, IfcAPI,
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
//Setup IFC Loader //Setup IFC Loader
const ifcLoader = new IFCLoader(); const ifcLoader = new IFCLoader();
ifcLoader.setWasmPath("jsm/loaders/ifc/");
ifcLoader.load( 'models/ifc/rac_advanced_sample_project.ifc', function ( model ) { ifcLoader.load( 'models/ifc/rac_advanced_sample_project.ifc', function ( model ) {
scene.add( model ); scene.add( model );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册