mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-18 03:19:53 +00:00
Fixes for edge curves and non-planar faces with inner boundaries. #338
This commit is contained in:
@@ -320,6 +320,17 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcFace* l, TopoDS_Shape& face) {
|
||||
|
||||
} else {
|
||||
mf->Add(wire);
|
||||
|
||||
// Same as above:
|
||||
// In case of (non-planar) face surface, p-curves need to be computed.
|
||||
if (BRep_Tool::Surface(mf->Face())->DynamicType() != STANDARD_TYPE(Geom_Plane)) {
|
||||
TopExp_Explorer exp(wire, TopAbs_EDGE);
|
||||
for (; exp.More(); exp.Next()) {
|
||||
const TopoDS_Edge& edge = TopoDS::Edge(exp.Current());
|
||||
ShapeFix_Edge fix_edge;
|
||||
fix_edge.FixAddPCurve(edge, mf->Face(), false, getValue(GV_PRECISION));
|
||||
}
|
||||
}
|
||||
}
|
||||
processed ++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user