From 6b250b3ccf21301f989f66e159ce16006cd5f20c Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 1 Feb 2020 11:15:40 +0100 Subject: [PATCH] manifold solid brep --- src/ifcgeom/schema/mapping.cpp | 8 ++++++++ src/ifcgeom/schema/mapping.i | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ifcgeom/schema/mapping.cpp b/src/ifcgeom/schema/mapping.cpp index ccf91b2e69..d59273fd91 100644 --- a/src/ifcgeom/schema/mapping.cpp +++ b/src/ifcgeom/schema/mapping.cpp @@ -219,12 +219,20 @@ taxonomy::item* mapping::map_impl(const IfcSchema::IfcFaceBasedSurfaceModel* ins return map_to_collection(this, inst->FbsmFaces()); } +taxonomy::item* mapping::map_impl(const IfcSchema::IfcManifoldSolidBrep* inst) { + // @todo voids + return map(inst->Outer()); +} + taxonomy::item* mapping::map_impl(const IfcSchema::IfcGeometricSet* inst) { return map_to_collection(this, inst->Elements()); } taxonomy::item* mapping::map_impl(const IfcSchema::IfcConnectedFaceSet* inst) { auto shell = map_to_collection(this, inst->CfsFaces()); + if (shell == nullptr) { + return nullptr; + } shell->closed = inst->declaration().is(IfcSchema::IfcClosedShell::Class()); return shell; } diff --git a/src/ifcgeom/schema/mapping.i b/src/ifcgeom/schema/mapping.i index f743319b09..94856533f3 100644 --- a/src/ifcgeom/schema/mapping.i +++ b/src/ifcgeom/schema/mapping.i @@ -34,7 +34,7 @@ BIND(IfcMappedItem); // IfcAdvancedBrep included // IfcFacetedBrepWithVoids included // IfcAdvancedBrepWithVoids included -// BIND(IfcManifoldSolidBrep); +BIND(IfcManifoldSolidBrep); BIND(IfcGeometricSet); #ifdef SCHEMA_HAS_IfcCylindricalSurface