| 48 | } |
| 49 | |
| 50 | webifc::geometry::IfcGeometryProcessor *webifc::manager::ModelManager::GetGeometryProcessor(uint32_t modelID) |
| 51 | { |
| 52 | if (!IsModelOpen(modelID)) |
| 53 | return {}; |
| 54 | if (!_geometryProcessors.contains(modelID)) |
| 55 | { |
| 56 | auto loader = GetIfcLoader(modelID); |
| 57 | webifc::geometry::IfcGeometryProcessor *processor = new webifc::geometry::IfcGeometryProcessor(*loader, _schemaManager, GetSettings(modelID).CIRCLE_SEGMENTS, GetSettings(modelID).COORDINATE_TO_ORIGIN, GetSettings(modelID).TOLERANCE_PLANE_INTERSECTION, GetSettings(modelID).TOLERANCE_PLANE_DEVIATION, GetSettings(modelID).TOLERANCE_BACK_DEVIATION_DISTANCE, GetSettings(modelID).TOLERANCE_INSIDE_OUTSIDE_PERIMETER, GetSettings(modelID).TOLERANCE_SCALAR_EQUALITY, GetSettings(modelID).PLANE_REFIT_ITERATIONS, GetSettings(modelID).BOOLEAN_UNION_THRESHOLD); |
| 58 | _geometryProcessors[modelID] = processor; |
| 59 | } |
| 60 | return _geometryProcessors.at(modelID); |
| 61 | } |
| 62 | |
| 63 | webifc::parsing::IfcLoader *webifc::manager::ModelManager::GetIfcLoader(uint32_t modelID) const |
| 64 | { |
no test coverage detected