From 1adcce509f44a71ee2059480ac2d47509e130b66 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 27 Mar 2023 14:02:21 +0200 Subject: [PATCH] Presentation style handling for 4.3 --- src/ifcgeom/mapping/mapping.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/mapping/mapping.cpp b/src/ifcgeom/mapping/mapping.cpp index d0ae7be51a..b12f51810f 100644 --- a/src/ifcgeom/mapping/mapping.cpp +++ b/src/ifcgeom/mapping/mapping.cpp @@ -324,12 +324,19 @@ namespace { continue; } IfcSchema::IfcPresentationStyleAssignment* style_assignment = (IfcSchema::IfcPresentationStyleAssignment*) *kt; -#else + + // Only in case of 2x3 or old style IfcPresentationStyleAssignment + auto styles = style_assignment->Styles(); +#elif defined(SCHEMA_HAS_IfcPresentationStyleAssignment) IfcSchema::IfcPresentationStyleAssignment::list::ptr style_assignments = si->Styles(); for (IfcSchema::IfcPresentationStyleAssignment::list::it kt = style_assignments->begin(); kt != style_assignments->end(); ++kt) { IfcSchema::IfcPresentationStyleAssignment* style_assignment = *kt; + + // Only in case of 2x3 or old style IfcPresentationStyleAssignment + auto styles = style_assignment->Styles(); +#else + auto styles = si->Styles(); #endif - aggregate_of_instance::ptr styles = style_assignment->Styles(); for (aggregate_of_instance::it lt = styles->begin(); lt != styles->end(); ++lt) { IfcUtil::IfcBaseClass* style = *lt; if (style->declaration().is(IfcSchema::IfcSurfaceStyle::Class())) { @@ -344,7 +351,9 @@ namespace { } } } +#if defined(SCHEMA_HAS_IfcStyleAssignmentSelect) || defined(SCHEMA_HAS_IfcPresentationStyleAssignment) } +#endif return std::make_pair(0, 0); }