* Opens a model and returns a modelID number * @param data Buffer containing IFC data (bytes) * @param settings Settings for loading the model @see LoaderSettings * @returns ModelID or -1 if model fails to open
(data: Uint8Array, settings?: LoaderSettings)
| 476 | * @returns ModelID or -1 if model fails to open |
| 477 | */ |
| 478 | OpenModel(data: Uint8Array, settings?: LoaderSettings): number { |
| 479 | let s = this.CreateSettings(settings); |
| 480 | let result = this.wasmModule.OpenModel( |
| 481 | s, |
| 482 | (destPtr: number, offsetInSrc: number, destSize: number) => { |
| 483 | let srcSize = Math.min(data.byteLength - offsetInSrc, destSize); |
| 484 | let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize); |
| 485 | let src = data.subarray(offsetInSrc, offsetInSrc + srcSize); |
| 486 | dest.set(src); |
| 487 | return srcSize; |
| 488 | } |
| 489 | ); |
| 490 | this.deletedLines.set(result, new Set()); |
| 491 | var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0] |
| 492 | .value; |
| 493 | let id = this.LookupSchemaId(schemaName); |
| 494 | if (id == -1) { |
| 495 | Log.error("Unsupported Schema:" + schemaName); |
| 496 | this.CloseModel(result); |
| 497 | return -1; |
| 498 | } |
| 499 | this.modelSchemaList[result] = id; |
| 500 | this.modelSchemaNameList[result] = schemaName; |
| 501 | Log.debug("Parsing Model using " + schemaName + " Schema"); |
| 502 | return result; |
| 503 | } |
| 504 | |
| 505 | /** |
| 506 | * Opens a model and returns a modelID number |
no test coverage detected