Some more checks and fixes in the IfcBooleanResult code. Most notably set the result to FirstOperand in case healing the result fails.

This commit is contained in:
Thomas Krijnen
2015-02-06 17:14:05 +00:00
parent a7c0c08725
commit def1328a91
2 changed files with 27 additions and 12 deletions
+9 -1
View File
@@ -765,6 +765,8 @@ bool IfcGeom::Kernel::flatten_shape_list(const IfcGeom::IfcRepresentationShapeIt
if (shapes.size() == 1) {
result = moved_shape;
const double precision = getValue(GV_PRECISION);
apply_tolerance(result, precision);
return true;
}
@@ -791,7 +793,13 @@ bool IfcGeom::Kernel::flatten_shape_list(const IfcGeom::IfcRepresentationShapeIt
}
}
return !result.IsNull();
const bool success = !result.IsNull();
if (success) {
const double precision = getValue(GV_PRECISION);
apply_tolerance(result, precision);
}
return success;
}
void IfcGeom::Kernel::remove_redundant_points_from_loop(TColgp_SequenceOfPnt& polygon, bool closed, double tol) {