mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces. 2. The cache is used now in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is a B-spline. 3. Algorithms were changed to use adaptors for B-spline calculations instead of curves or surfaces. 4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx) 5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation. 6. Test cases were modified according to the modern behavior. 7. Changes in BOPAlgo_WireSplitter, BOPTools_AlgoTools, BRepLib_CheckCurveOnSurface and ShapeAnalysis_Wire to use adaptors instead of geometric entities 8. Allow Geom2dAdaptor and GeomAdaptor in case of offset curve to use corresponding adaptor for basis curve Modification of test-cases according to the new behavior.
This commit is contained in:
@@ -2232,10 +2232,10 @@ void TrimEdge (const TopoDS_Edge& E,
|
||||
// otherwise preserve only one of its representations.
|
||||
//----------------------------------------------------------
|
||||
if (!BRep_Tool::Degenerated(E)) {
|
||||
Standard_Real aParTol = 2.0 * Precision::PConfusion();
|
||||
for (Standard_Integer k = 1; k < TheVer.Length(); k ++) {
|
||||
if (TheVer.Value(k).IsSame(TheVer.Value(k+1)) ||
|
||||
|
||||
Abs(ThePar.Value(k)-ThePar.Value(k+1)) <= Precision::PConfusion()) {
|
||||
Abs(ThePar.Value(k)-ThePar.Value(k+1)) <= aParTol) {
|
||||
|
||||
if(k+1 == TheVer.Length()) {
|
||||
StoreInMap(TheVer(k), TheVer(k+1), MapVV);
|
||||
|
Reference in New Issue
Block a user