Implements safer way to use IfcCurveSegment.UsingCurves

Co-authored-by: Thomas Krijnen <t.krijnen@gmail.com>
This commit is contained in:
Richard Brice
2023-11-09 03:23:13 -07:00
committed by GitHub
parent 7ed85358f9
commit 8409859e8d
+2
View File
@@ -106,6 +106,7 @@ class segment_geometry_adjuster {
// Get the parent of this segment. If it is a IfcGradientCurve or IfcSegmentedRefernceCurve // Get the parent of this segment. If it is a IfcGradientCurve or IfcSegmentedRefernceCurve
// look for the optional EndPoint attribute // look for the optional EndPoint attribute
auto curves = inst->UsingCurves(); auto curves = inst->UsingCurves();
if (curves && curves->size() {
auto curve = *curves->begin(); auto curve = *curves->begin();
const IfcSchema::IfcPlacement* placement = nullptr; const IfcSchema::IfcPlacement* placement = nullptr;
if (curve->as<IfcSchema::IfcSegmentedReferenceCurve>()) { if (curve->as<IfcSchema::IfcSegmentedReferenceCurve>()) {
@@ -118,6 +119,7 @@ class segment_geometry_adjuster {
if (placement) { if (placement) {
start_of_next_inst_ = taxonomy::cast<taxonomy::matrix4>(mapping->map(placement))->ccomponents(); start_of_next_inst_ = taxonomy::cast<taxonomy::matrix4>(mapping->map(placement))->ccomponents();
} }
}
} }
} }