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

Function LoadAllGeometry

src/cpp/wasm/web-ifc-wasm.cpp:191–221  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

189}
190
191std::vector<webifc::geometry::IfcFlatMesh> LoadAllGeometry(uint32_t modelID)
192{
193 if (!manager.IsModelOpen(modelID))
194 return std::vector<webifc::geometry::IfcFlatMesh>();
195 auto loader = manager.GetIfcLoader(modelID);
196 auto geomLoader = manager.GetGeometryProcessor(modelID);
197 std::vector<webifc::geometry::IfcFlatMesh> meshes;
198
199 for (auto type : manager.GetSchemaManager().GetIfcElementList())
200 {
201 auto elements = loader->GetExpressIDsWithType(type);
202
203 if (type == webifc::schema::IFCOPENINGELEMENT || type == webifc::schema::IFCSPACE || type == webifc::schema::IFCOPENINGSTANDARDCASE)
204 {
205 continue;
206 }
207
208 for (uint32_t i = 0; i < elements.size(); i++)
209 {
210 webifc::geometry::IfcFlatMesh mesh = geomLoader->GetFlatMesh(elements[i]);
211 for (auto &geom : mesh.geometries)
212 {
213 auto &flatGeom = geomLoader->GetGeometry(geom.geometryExpressID);
214 flatGeom.GetVertexData();
215 }
216 meshes.push_back(std::move(mesh));
217 }
218 }
219
220 return meshes;
221}
222
223webifc::geometry::IfcGeometry GetGeometry(uint32_t modelID, uint32_t expressID)
224{

Callers

nothing calls this directly

Calls 8

GetIfcLoaderMethod · 0.80
GetGeometryProcessorMethod · 0.80
GetExpressIDsWithTypeMethod · 0.80
sizeMethod · 0.80
GetGeometryMethod · 0.80
GetVertexDataMethod · 0.65
IsModelOpenMethod · 0.45
GetFlatMeshMethod · 0.45

Tested by

no test coverage detected