| 189 | } |
| 190 | |
| 191 | std::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 | |
| 223 | webifc::geometry::IfcGeometry GetGeometry(uint32_t modelID, uint32_t expressID) |
| 224 | { |
nothing calls this directly
no test coverage detected