MCPcopy Create free account
hub / github.com/ThatOpen/engine_web-ifc / CreateModelResuts

Function CreateModelResuts

tests/regression/regression.mjs:69–108  ·  view source on GitHub ↗
(filename)

Source from the content-addressed store, hash-verified

67}
68
69function CreateModelResuts(filename)
70{
71 let modelID;
72 console.log("Parsing:"+filename);
73 if (filename.includes(".ifczip")) {
74 let zip = new AdmZip(filename);
75 zip.getEntries().forEach(function (zipEntry) {
76 let ifcdata = zipEntry.getData();
77 modelID = ifcAPI.OpenModel(ifcdata);
78 });
79 } else {
80 let file = openSync(filename);
81 let retriever = function (offset, size) {
82 let data = new Uint8Array(size);
83 let bytesRead = readSync(file,data,0,size,offset);
84 if (bytesRead <= 0 ) return new Uint8Array(0);
85 return data;
86 }
87 try {
88 modelID = ifcAPI.OpenModelFromCallback(retriever);
89 } catch (e) {
90 console.log(e);
91 }
92 }
93 let geometries = [];
94 ifcAPI.StreamAllMeshes(modelID, (mesh) => {
95 const placedGeometries = mesh.geometries;
96 for (let i = 0; i < placedGeometries.size(); i++) {
97 const placedGeometry = placedGeometries.get(i);
98 let mesh = getPlacedGeometry(modelID, placedGeometry);
99 let geom = mesh.geometry.applyMatrix4(mesh.matrix);
100 geometries.push(geom);
101 }
102 });
103
104 console.log("Parsed Model:"+filename+"Loading " + geometries.length +" geometries");
105 if (geometries.length > 0) {
106 return geometries;
107 }
108}
109
110function getPlacedGeometry(modelID, placedGeometry) {
111 const geometry = getBufferGeometry(modelID, placedGeometry);

Callers 1

RunRegressionFunction · 0.85

Calls 6

getPlacedGeometryFunction · 0.85
OpenModelMethod · 0.80
OpenModelFromCallbackMethod · 0.80
StreamAllMeshesMethod · 0.80
sizeMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected