------------------------------------------------------------------------------------------------
| 186 | |
| 187 | // ------------------------------------------------------------------------------------------------ |
| 188 | void ProcessConnectedFaceSet(const Schema_2x3::IfcConnectedFaceSet& fset, TempMesh& result, ConversionData& conv) |
| 189 | { |
| 190 | for(const Schema_2x3::IfcFace& face : fset.CfsFaces) { |
| 191 | // size_t ob = -1, cnt = 0; |
| 192 | TempMesh meshout; |
| 193 | for(const Schema_2x3::IfcFaceBound& bound : face.Bounds) { |
| 194 | |
| 195 | if(const Schema_2x3::IfcPolyLoop* const polyloop = bound.Bound->ToPtr<Schema_2x3::IfcPolyLoop>()) { |
| 196 | if(ProcessPolyloop(*polyloop, meshout,conv)) { |
| 197 | // The outer boundary is better determined by checking which |
| 198 | // polygon covers the largest area. |
| 199 | } |
| 200 | } else { |
| 201 | IFCImporter::LogWarn("skipping unknown IfcFaceBound entity, type is ", bound.Bound->GetClassName()); |
| 202 | continue; |
| 203 | } |
| 204 | } |
| 205 | ProcessPolygonBoundaries(result, meshout); |
| 206 | } |
| 207 | } |
| 208 | |
| 209 | // ------------------------------------------------------------------------------------------------ |
| 210 | void ProcessRevolvedAreaSolid(const Schema_2x3::IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv) { |
no test coverage detected