Surface - Fill boundary curves not honor SplitCurve edge if it's part of BSpline

This commit is contained in:
Andrew Shkolik
2025-02-15 20:39:16 -06:00
committed by Chris Hennes
parent bf1f99c070
commit a6c92e19f6

View File

@@ -283,6 +283,7 @@ void GeomFillSurface::createBezierSurface(TopoDS_Wire& aWire)
Handle(Geom_BezierCurve)::DownCast(c_geom); // Try to get Bezier curve
if (!bezier.IsNull()) {
bezier->Segment(u1, u2); // DownCast(c_geom) will not trim bezier, so DIY
gp_Trsf transf = heloc.Transformation();
bezier->Transform(transf); // apply original transformation to control points
// Store Underlying Geometry
@@ -331,8 +332,10 @@ void GeomFillSurface::createBSplineSurface(TopoDS_Wire& aWire)
Handle(Geom_Curve) c_geom = BRep_Tool::Curve(edge, heloc, u1, u2); // The geometric curve
Handle(Geom_BSplineCurve) bspline =
Handle(Geom_BSplineCurve)::DownCast(c_geom); // Try to get BSpline curve
gp_Trsf transf = heloc.Transformation();
if (!bspline.IsNull()) {
bspline->Segment(u1, u2); // DownCast(c_geom) will not trim spline, so DIY
bspline->Transform(transf); // apply original transformation to control points
// Store Underlying Geometry
curves.push_back(bspline);