mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0027048: BSpline cache is always wrong outside of surface
1. Disable recalculation of B-spline cache when the parameter is out of surface boundary but near the cached span. 2. Rebuild cache each time a curve/surface is loaded into adaptor (B-spline knots may be re-parametrized outside adaptor without changing base curve) 3. Test cases.
This commit is contained in:
@@ -194,7 +194,9 @@ void GeomAdaptor_Curve::load(const Handle(Geom_Curve)& C,
|
||||
myTypeCurve = GeomAbs_OtherCurve;
|
||||
}
|
||||
}
|
||||
}
|
||||
else // rebuild cache of Bezier and B-spline curve even if the loaded curve is same
|
||||
RebuildCache(myFirst);
|
||||
}
|
||||
|
||||
// --
|
||||
// -- Global methods - Apply to the whole curve.
|
||||
|
@@ -217,6 +217,8 @@ void GeomAdaptor_Surface::load(const Handle(Geom_Surface)& S,
|
||||
else
|
||||
mySurfaceType = GeomAbs_OtherSurface;
|
||||
}
|
||||
else // rebuild cache of Bezier and B-spline surface even if the loaded surface is same
|
||||
RebuildCache(myUFirst, myVFirst);
|
||||
}
|
||||
|
||||
// --
|
||||
|
Reference in New Issue
Block a user