mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-12 14:33:28 +00:00
#329 Only auto close IfcCompositeCurve when used for profile
This commit is contained in:
@@ -253,14 +253,18 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCompositeCurve* l, TopoDS_Wire
|
|||||||
wire_last_vertex = edge_last_vertex;
|
wire_last_vertex = edge_last_vertex;
|
||||||
}
|
}
|
||||||
|
|
||||||
gp_Pnt first = BRep_Tool::Pnt(edge_last_vertex);
|
IfcEntityList::ptr profile = l->entity->getInverse(IfcSchema::Type::IfcProfileDef, -1);
|
||||||
gp_Pnt last = BRep_Tool::Pnt(wire_first_vertex);
|
|
||||||
|
|
||||||
Standard_Real distance = first.SquareDistance(last);
|
if (profile && profile->size() > 0) {
|
||||||
if (distance > precision_sq_2) {
|
gp_Pnt first = BRep_Tool::Pnt(edge_last_vertex);
|
||||||
w.Add(BRepBuilderAPI_MakeEdge(edge_last_vertex, wire_first_vertex));
|
gp_Pnt last = BRep_Tool::Pnt(wire_first_vertex);
|
||||||
|
|
||||||
Logger::Message(Logger::LOG_ERROR, "Closed gap on:", l->entity);
|
Standard_Real distance = first.SquareDistance(last);
|
||||||
|
if (distance > precision_sq_2) {
|
||||||
|
w.Add(BRepBuilderAPI_MakeEdge(edge_last_vertex, wire_first_vertex));
|
||||||
|
|
||||||
|
Logger::Message(Logger::LOG_ERROR, "Closed gap on:", l->entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wire = w.Wire();
|
wire = w.Wire();
|
||||||
|
|||||||
Reference in New Issue
Block a user