View Issue Details

IDProjectCategoryView StatusLast Update
0024682Open CASCADEOCCT:Modeling Datapublic2021-06-16 20:46
ReporterazvAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2010 
Product Version6.7.0 
Target Version7.0.0Fixed in Version7.0.0 
Summary0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
DescriptionThe cache data stored in Geom2d_BSplineCurve, Geom_BSplineCurve and Geom_BSplineSurface should be taken out to corresponding cache classes (BSplCLib_Cache and BSplSLib_Cache).

These changes allow to avoid collisions in multi-threading mode during B-spline calculations.
Steps To ReproduceNot required
TagsNo tags attached.
Test case numberNot needed

Relationships

parent of 0026252 closedbugmaster Open CASCADE GeomAdaptor_Surface should use inner adaptor to calculate values of complex surfaces 
parent of 0029769 closedabv Community Foundation Classes - Uninitialized data with BSplCLib_Cache, BSplSLib_Cache 
related to 0025970 assignedgka Open CASCADE Shape Healing - enable parallel reconstruction of pcurves 
related to 0026042 closedbugmaster Community OCCT won't work with the latest Xcode 
related to 0023620 closedbugmaster Community Follow up of 0022939 - make Bezier curve/surface evaluation thread-safe 
related to 0026254 closedbugmaster Open CASCADE Inject GeomAbs_OffsetCurve into GeomAbs_CurveType enumeration 
related to 0027107 closedabv Community ShapeAnalysis_Surface should use GeomAdaptor_Surface for surface evaluation 
related to 0032449 closedbugmaster Open CASCADE Modeling Algorithms - make curves adaptors classes thread safe 

Activities

azv

2014-03-04 16:04

administrator   ~0028128

Please, review the branch CR24682.

git

2014-08-15 09:13

administrator   ~0030761

Branch CR24682_1 has been created by azv.

SHA-1: bc348a371fc5d9dfbae79da0bb883d9d5809c2b0


This branch includes the following new commits:

       new bc348a3 0024682: B-spline cache data was separated into new classes.


Detailed log of new commits:

commit bc348a371fc5d9dfbae79da0bb883d9d5809c2b0
Author: azv
Date: Fri Aug 15 09:11:10 2014 +0400

    0024682: B-spline cache data was separated into new classes.
    
    0024682: Small optimizations of B-spline cache calculation
    
    0024682: Optimization of B-spline computations and regression fixing
    
    0024682: Eliminating regressions

git

2015-01-19 09:36

administrator   ~0036187

Branch CR24682_2 has been created by azv.

SHA-1: 500c64a05e7da25eb4589bf249bb4e535e8c8b90


Detailed log of new commits:

Author: azv
Date: Fri Aug 15 09:11:10 2014 +0400

    0024682: B-spline cache data was separated into new classes.
    
    0024682: Small optimizations of B-spline cache calculation
    
    0024682: Optimization of B-spline computations and regression fixing
    
    0024682: Eliminating regressions
    
    Rebased on current master

git

2015-03-03 13:33

administrator   ~0038038

Branch CR24682_3 has been created by azv.

SHA-1: 2d6f6953a767a33db794e4aba653e62968d375f8


Detailed log of new commits:

Author: azv
Date: Tue Mar 3 12:51:07 2015 +0300

    0024682: B-spline cache data was separated into new classes.
    
    0024682: Small optimizations of B-spline cache calculation
    
    0024682: Optimization of B-spline computations and regression fixing
    
    0024682: Eliminating regressions
    
    Rebased on current master
    
    Regressions repairing
    
    Eliminating regressions in the blend test grid
    
    Avoid hang up on lines converted to B-splines
    
    Adjusting test cases

azv

2015-03-03 13:35

administrator   ~0038039

Dear Andrey,

Could you, please, review branch CR24682_3?

azv

2015-03-03 16:21

administrator   ~0038050

Changes overview:

1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces. Method BuildCache() of such classes is used to recompute cache data for the span according to given parameter, and method IsCacheValid() allows to identify whether the parameter is on the cached span. In BSplCLib_Cache and BSplSLib_Cache were implemented methods D0(), D1(), D2() (and D3() for curves) to calculate the value of B-spline and its derivatives.

2. The cache is used in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is B-spline. So, it is prevferable to use adaptors instead of surfaces to calculate B-splines.

3. Several algorithms were changed to use adaptors: BRepCheck_Wire, BRepLib_MakeEdge, IntWalk_PWalking, ShapeAnalysis_Curve, ShapeAnalysis_Wire, ShapeFix_IntersectionTool, StepToTopoDS_TranslateEdge. Other changes relate to adjusting algorithms to new B-spline calculation behaviour.


Performance appraisal:

Test name | master | CR24682_3 | SpeedUp
full test grid | 8959.19 | 9608.52 | -7.24%
perf bspline intersect | 36.55415 | 32.96301 | 9.82%
mesh grid | 767.29 | 765.67 | 0.21%

mesh advanced_incmesh B5 | 29.0941865 | 29.172187 | -0.29%
mesh advanced_incmesh_parallel B5 | 29.2033872 | 29.4061885 | -0.69%
mesh advanced_mesh B5 | 28.4545824 | 28.7665844 | -1.09%
mesh advanced_shading B5 | 72.7744665 | 72.1816627 | 0.81%

mesh standard_incmesh N2 | 3.900025 | 3.9780255 | -2%
mesh standard_incmesh_parallel N2 | 4.524029 | 4.2432272 | 6.2%
mesh standard_mesh N2 | 4.7112302 | 4.8204309 | -2.32%
mesh standard_shading N2 | 4.4148283 | 4.3992282 | 0.35%

git

2015-03-03 16:21

administrator   ~0038051

Branch CR24682_3 has been updated forcibly by azv.

SHA-1: 7fce2de35b3184c6422033e83763722306c653ef

abv

2015-03-05 07:38

manager   ~0038113

Try in DRAW "testgrid bugs iges buc60591*" -- on my machine it eats all memory (16 Gb) and hangs forever.

Please reformulate commit message to have good description of the changes made, rather than sequence of messages from smaller commits

git

2015-03-05 08:26

administrator   ~0038114

Branch CR24682_3 has been updated forcibly by azv.

SHA-1: 8a6d61993fd91a47b0b5a2d4614766ea0af020a4

azv

2015-03-05 08:29

administrator   ~0038115

Dear Andrey,

Could you, please, review branch CR24682_3 once again?

The tests you mentioned above were run fine on my machine. They all pick approximately 10MB.

git

2015-03-13 16:01

administrator   ~0038331

Branch CR24682_5 has been created by azv.

SHA-1: 136fd1f7778fea86f0ac49bb2466e94b24e4c264


Detailed log of new commits:

Author: azv
Date: Fri Mar 13 16:00:21 2015 +0300

    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.

azv

2015-03-13 16:02

administrator   ~0038332

Dear Andrey,

Could you, please, review branch CR24682_5?

abv

2015-03-14 22:12

manager   ~0038371

First, results of my testing: there is noticeable reduction of the memory usage in tests, obviously due to space saved for storing cache in bsplines. In some de tests, this saving is 20% or more, and 5% in average by all tests. CPU became worse in many cases, likely due to algorithms not using adaptors and hence no cache; total slow down is 6%. In a very few cases memory usage has increased, and CPU reduced.

Most notable regressions are;

CPU boolean bcut_complex E2: 1.1388073 / 0.5304034 [+114.71%]
CPU boolean bcut_complex F2: 1.8408118 / 0.7020045 [+162.22%]
CPU boolean bcut_complex G8: 3.6192232 / 1.8876121 [+91.74%]

CPU bugs modalg_5 bug25592: 10.9824704 / 2.1060135 [+421.48%]

CPU draft angle F1: 2.4336156 / 1.0764069 [+126.09%]

CPU offset faces_type_i C1: 1.4976096 / 0.6552042 [+128.57%]

CPU offset wire_closed_outside_0_005 D1: 2.6052167 / 0.5928038 [+339.47%]
MEMORY offset wire_closed_outside_0_005 D1: 9344 / 3429 [+172.50%]

I suggest affected algorithms should be checked and revised to use adaptors for B-spline evaluation, to avoid performance regressions.

git

2015-03-16 12:36

administrator   ~0038388

Branch CR24682_5 has been updated forcibly by azv.

SHA-1: f31387db4de91e5372d4f1ce06759ad46d430f17

azv

2015-03-16 12:37

administrator   ~0038389

Branch CR24682_5 rebased on latest master

git

2015-04-07 12:53

administrator   ~0039303

Branch CR24682_5 has been updated forcibly by azv.

SHA-1: 7272595c839e1c3c85a58c3735d5e3f800128bfc

git

2015-04-07 12:56

administrator   ~0039304

Branch CR24682_6 has been created by azv.

SHA-1: 09450223b20a0b99dbf28454681afcfff0541919


Detailed log of new commits:

Author: azv
Date: Tue Apr 7 12:55:43 2015 +0300

    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.

azv

2015-04-07 12:57

administrator   ~0039305

Dear Andrey,

Please review current state of branch CR24682_6. It has small modifications to avoid regressions on the current master

abv

2015-04-15 08:19

manager   ~0039732

In my testing, test bugs moddata_1 bug22759 hanged once and worked twice longer than in master second time, please check. Performance and memory differences are on the same level as previous version

git

2015-04-30 14:55

administrator   ~0040479

Branch CR24682_7 has been created by azv.

SHA-1: 39dc47a76cd780f162b134de627fd18f93cf8d15


Detailed log of new commits:

Author: azv
Date: Thu Apr 30 14:54:45 2015 +0300

    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

git

2015-05-14 14:22

administrator   ~0040902

Branch CR24682_7 has been updated forcibly by azv.

SHA-1: be32e7abf4f03ccd1b6df3b89d3bfa3dd9c60a38

azv

2015-05-14 14:28

administrator   ~0040903

Dear Andrey,

Please review branch CR24682_7.

Test case "bugs moddata_1 bug22759" works twice longer because it produces different number of triangles in mesh. I think the behavior is correct.

Moreover, total acceleration (CPU time reduction) is about 5%, used memory reduction is about 4%

abv

2015-05-14 14:38

manager   ~0040904

Reviewed, please test

git

2015-05-15 17:14

administrator   ~0041187

Branch CR24682_7 has been updated forcibly by apv.

SHA-1: b55ddb391d084718ecfe1ce6c0e8fc86f7d1eeac

apv

2015-05-15 17:14

tester   ~0041188

Branch CR24682_7 has been rebased on the current master

apv

2015-05-18 14:55

tester   ~0041232

Last edited: 2015-05-18 14:55

Dear BugMaster,

Branch CR24682_7 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: b55ddb391d084718ecfe1ce6c0e8fc86f7d1eeac

Number of compiler warnings:
occt component:
   Linux: 18 (18 on master)
   Windows: 0 (0 on master)
products component:
   Linux: 4 (4 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
http://occt-tests/CR24682-7-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR24682-7-master-occt-64/Windows-64-VC10/summary.html
de step_3 D8 (Linux only)
offset wire_closed_inside_0_075 C8 (Linux only)
boolean bfuse_complex F5 (possible improvements), Q2 (possible improvements)
bugs xde bug23969 (possible improvement)
boolean volumemaker F8 (possible improvement; Linux only)
http://occt-tests/CR24682-7-master-products-64/Debian70-64/summary.html
http://occt-tests/CR24682-7-master-products-64/Windows-64-VC10/summary.html
cr standard D2, D8
parasolid doc_1 A3
parasolid doc_3 B3, D2, E4
sat doc_1 A1, C7(Linux only), C8 (Linux only), F5, F7, J7, Y4
sat doc_5 H6 (Windows only)
sat doc_6 A5, B3, I6, I7
sat load B9 (Linux only), C1 (Linux only)
sat simple B9 (Linux only), C1 (Linux only)

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 96332932 / 99376732 [-3.06%]
Total CPU difference: 18847.519999999844 / 19151.410000000174 [-1.59%]

Testing on Windows:
Total MEMORY difference: 55912988 / 58774561 [-4.87%]
Total CPU difference: 17325.346259198843 / 16896.000306999 [+2.54%]

Problematic CPU differences:
CPU offset wire_closed_inside_0_025 B2: 0.9048058 / 0.3276021 [+176.19%]
CPU offset wire_closed_outside_0_005 D1: 2.0748133 / 0.7020045 [+195.56%]
CPU bugs moddata_1 bug22759: 269.7569292 / 103.5222636 [+160.58%]
CPU bugs modalg_1 buc60533: 2.7768178 / 1.1856076 [+134.21%]
CPU bugs modalg_1 buc60555_3: 27.6433772 / 11.4348733 [+141.75%]
CPU bugs modalg_1 buc60555_1: 3.432022 / 1.4196091 [+141.76%]
CPU bugs modalg_2 bug5805_43: 1.6536106 / 0.6864044 [+140.91%]
CPU bugs modalg_2 bug5805_41: 2.9952192 / 1.1076071 [+170.42%]

git

2015-05-22 15:06

administrator   ~0041433

Branch CR24682_7 has been updated forcibly by azv.

SHA-1: 449c918ad3db3796c5879aae5905ffbb85b81a23

git

2015-05-22 15:08

administrator   ~0041434

Branch CR24682_8 has been created by azv.

SHA-1: 434ed8d29cd01154e8723d3d2fef2cf33e66c35f


Detailed log of new commits:

Author: azv
Date: Fri May 22 11:33:08 2015 +0300

    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

azv

2015-05-22 15:08

administrator   ~0041435

Dear Andrey,

Please review branch CR24682_8. It is a squashed version of CR24682_7 which contains latest changes eliminating regressions as a separate commit.


Dear Alexey,

Several regressions were fixed on branch CR24682_8. And following comments related to test cases need to be updated:

OCCT part:
de step_3 D8
    has todo "Debian60-64". Please update it to "Debian70-64" as it was testing system
boolean bfuse_complex F5, Q2
    have no faulty shapes now, but be careful, the result of boolean operation is still incorrect
bugs xde bug23969
    please, update test case according to new behaviour
boolean volumemaker F8
    is unstable, so I don't think it should be classified as improvement
    
Products part:
cr standard D8,
parasolid doc_1 A3,
parasolid doc_3 D2, E4,
sat doc_6 A5,
sat load B9, C1,
sat simple B9, C1
    please, update above test cases due to changed tolerances
parasolid doc_3 B3
    will be fixed in frame of 0026252, so, please, add appropriate todo
sat doc_1 A1, C7, C8, F5, F7, J7, Y4,
sat doc_5 H6
    please, update test case according to new behaviour
sat doc_6 B3, I6
    probably, todo should be updated

abv

2015-05-22 15:21

manager   ~0041437

Reviewed, please test

apv

2015-05-25 12:54

tester   ~0041485

Dear BugMaster,

Branch CR24682_8 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 434ed8d29cd01154e8723d3d2fef2cf33e66c35f

Number of compiler warnings:
occt component:
   Linux: 29 (25 on master)
   Windows: 0 (0 on master)
products component:
   Linux: 37 (37 on master)
   Windows: 0 (0 on master)
There are new additional warnings were detected:
1. Geom_BSplineSurface.cxx:168, GNU C Compiler 4 (gcc), Priority: Normal
variable 'MinDegree' set but not used [-Wunused-but-set-variable]
2. Geom_BSplineSurface.cxx:169, GNU C Compiler 4 (gcc), Priority: Normal
variable 'MaxDegree' set but not used [-Wunused-but-set-variable]
3. Geom_BSplineSurface.cxx:230, GNU C Compiler 4 (gcc), Priority: Normal
variable 'MinDegree' set but not used [-Wunused-but-set-variable]
4. Geom_BSplineSurface.cxx:231, GNU C Compiler 4 (gcc), Priority: Normal
variable 'MaxDegree' set but not used [-Wunused-but-set-variable]

Regressions/Differences:
http://occt-tests/CR24682-8-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR24682-8-master-occt-64/Windows-64-VC10/summary.html
Please, pay attention to:
de iges_1 K3, P5, R8
de iges_2 B8, C2
Other differences in test-cases (will be updated, according to the new behavior):
de step_3 D8, E6
offset wire_closed_outside_0_005 D1
boolean bfuse_complex F5, Q2
bugs xde bug23969
de iges_1 M7
offset_closed_inside_0_005 D1
boolean volumemaker F8

http://occt-tests/CR24682-8-master-products-64/Debian70-64/summary.html
http://occt-tests/CR24682-8-master-products-64/Windows-64-VC10/summary.html
cr standard D8
parasolid doc_1 A3
parasolid doc_3 B3, D2, E4
sat doc_1 A1, C7, C8, F5, F7, J7, Y4
sat doc_5 H6
sat doc_6 A5, B3, I6
sat load B9, C1
sat simple B9, C1

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 93657957 / 97568116 [-4.01%]
Total CPU difference: 18270.879999999874 / 17947.190000000042 [+1.80%]

Testing on Windows:
Total MEMORY difference: 54674162 / 57168685 [-4.36%]
Total CPU difference: 17191.74700279909 / 16514.468661299044 [+4.10%]

Problematic CPU differences:
CPU bugs moddata_1 bug22759: 270.8957365 / 104.0214668 [+160.42%]
CPU bugs modalg_1 buc60533: 2.808018 / 1.1700075 [+140.00%]
CPU bugs modalg_1 buc60555_3: 27.9865794 / 11.4816736 [+143.75%]
CPU bugs modalg_1 buc60555_1: 3.432022 / 1.4352092 [+139.13%]
CPU bugs modalg_1 buc60555_2: 6.4896416 / 2.8392182 [+128.57%]
CPU bugs modalg_2 bug5805_43: 1.5912102 / 0.6864044 [+131.82%]
CPU bugs modalg_2 bug5805_41: 2.8704184 / 1.1232072 [+155.56%]

azv

2015-05-25 14:51

administrator   ~0041497

Dear Alexey,

Warnings on Linux were eliminated. Please, check compilation once again.

Please, update test cases
de iges_1 K3, P5, R8
de iges_2 B8, C2
in conjunction with other cases mentioned above.

git

2015-05-25 14:59

administrator   ~0041499

Branch CR24682_8 has been updated forcibly by azv.

SHA-1: c4e8923ba489ad9d308324e8b29ff418f404ac39

git

2015-05-26 16:28

administrator   ~0041576

Branch CR24682_8 has been updated by apv.

SHA-1: 62ccf8f05898f0d1a80e7bf2142327e2437d315b


Detailed log of new commits:

Author: apv
Date: Tue May 26 16:27:47 2015 +0300

    Modification of test-cases according to the new behavior.

apv

2015-05-27 16:43

tester   ~0041613

Branch CR24682 has been created in products git-repository to update test-cases according to the new behavior.

apv

2015-05-27 17:25

tester   ~0041617

Dear BugMaster,

Branch CR24682_8 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: c4e8923ba489ad9d308324e8b29ff418f404ac39

Number of compiler warnings:
occt component:
   Linux: 25 (25 on master)
   Windows: 0 (0 on master)
products component:
   Linux: 37 (37 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 95304182 / 98901579 [-3.64%]
Total CPU difference: 18428.559999999896 / 18157.19000000012 [+1.49%]

Testing on Windows:
Total MEMORY difference: 55577606 / 58390273 [-4.82%]
Total CPU difference: 17323.28704599907 / 16744.632536699035 [+3.46%]

git

2015-08-14 11:00

administrator   ~0044258

Branch CR24682_8 has been deleted by inv.

SHA-1: 62ccf8f05898f0d1a80e7bf2142327e2437d315b

git

2015-08-14 11:00

administrator   ~0044265

Branch CR24682_7 has been deleted by inv.

SHA-1: 449c918ad3db3796c5879aae5905ffbb85b81a23

git

2015-08-14 11:02

administrator   ~0044290

Branch CR24682_6 has been deleted by inv.

SHA-1: 09450223b20a0b99dbf28454681afcfff0541919

git

2015-08-14 11:02

administrator   ~0044291

Branch CR24682_5 has been deleted by inv.

SHA-1: 7272595c839e1c3c85a58c3735d5e3f800128bfc

git

2015-08-14 11:02

administrator   ~0044293

Branch CR24682_3 has been deleted by inv.

SHA-1: 8a6d61993fd91a47b0b5a2d4614766ea0af020a4

git

2015-08-14 11:02

administrator   ~0044296

Branch CR24682_2 has been deleted by inv.

SHA-1: 500c64a05e7da25eb4589bf249bb4e535e8c8b90

git

2015-08-14 11:02

administrator   ~0044299

Branch CR24682_1 has been deleted by inv.

SHA-1: bc348a371fc5d9dfbae79da0bb883d9d5809c2b0

git

2015-08-14 11:02

administrator   ~0044302

Branch CR24682 has been deleted by inv.

SHA-1: 105afd233180330897186c664a063d46b6bec6f6

Roman Lygin

2015-12-04 18:01

updater   ~0048759

See also http://dev.opencascade.org/index.php?q=node/1138.

Related Changesets

occt: master 94f71cad

2015-05-28 10:36:57

azv


Committer: bugmaster Details Diff
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.
Affected Issues
0024682
mod - src/Adaptor3d/Adaptor3d_TopolTool.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools_1.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools_2.cxx Diff File
mod - src/BRepCheck/BRepCheck_Wire.cxx Diff File
mod - src/BRepFill/BRepFill_OffsetWire.cxx Diff File
mod - src/BRepLib/BRepLib_CheckCurveOnSurface.cxx Diff File
mod - src/BRepLib/BRepLib_MakeEdge.cxx Diff File
mod - src/BSplCLib/BSplCLib.cdl Diff File
mod - src/BSplCLib/BSplCLib.cxx Diff File
add - src/BSplCLib/BSplCLib_Cache.cxx Diff File
add - src/BSplCLib/BSplCLib_Cache.hxx Diff File
mod - src/BSplCLib/BSplCLib_CurveComputation.gxx Diff File
mod - src/BSplCLib/FILES Diff File
mod - src/BSplSLib/BSplSLib.cdl Diff File
mod - src/BSplSLib/BSplSLib.cxx Diff File
add - src/BSplSLib/BSplSLib_Cache.cxx Diff File
add - src/BSplSLib/BSplSLib_Cache.hxx Diff File
mod - src/BSplSLib/FILES Diff File
mod - src/CSLib/CSLib.cxx Diff File
add - src/CSLib/CSLib_Offset.cxx Diff File
add - src/CSLib/CSLib_Offset.hxx Diff File
add - src/CSLib/FILES Diff File
mod - src/Extrema/Extrema_GExtPC.gxx Diff File
mod - src/Geom/Geom_BSplineCurve.cdl Diff File
mod - src/Geom/Geom_BSplineCurve.cxx Diff File
mod - src/Geom/Geom_BSplineCurve_1.cxx Diff File
mod - src/Geom/Geom_BSplineSurface.cdl Diff File
mod - src/Geom/Geom_BSplineSurface.cxx Diff File
mod - src/Geom/Geom_BSplineSurface_1.cxx Diff File
mod - src/Geom/Geom_OffsetCurve.cxx Diff File
mod - src/Geom/Geom_SurfaceOfRevolution.cxx Diff File
mod - src/Geom2d/Geom2d_BSplineCurve.cdl Diff File
mod - src/Geom2d/Geom2d_BSplineCurve.cxx Diff File
mod - src/Geom2d/Geom2d_BSplineCurve_1.cxx Diff File
mod - src/Geom2d/Geom2d_OffsetCurve.cxx Diff File
mod - src/Geom2dAdaptor/Geom2dAdaptor.cdl Diff File
mod - src/Geom2dAdaptor/Geom2dAdaptor_Curve.cdl Diff File
mod - src/Geom2dAdaptor/Geom2dAdaptor_Curve.cxx Diff File
mod - src/GeomAdaptor/GeomAdaptor.cdl Diff File
mod - src/GeomAdaptor/GeomAdaptor_Curve.cdl Diff File
mod - src/GeomAdaptor/GeomAdaptor_Curve.cxx Diff File
mod - src/GeomAdaptor/GeomAdaptor_Surface.cdl Diff File
mod - src/GeomAdaptor/GeomAdaptor_Surface.cxx Diff File
mod - src/GeomInt/GeomInt_IntSS_1.cxx Diff File
mod - src/GeomLib/GeomLib.cxx Diff File
mod - src/IntCurve/IntCurve_IntPolyPolyGen.gxx Diff File
mod - src/IntPatch/IntPatch_ImpPrmIntersection.cxx Diff File
mod - src/IntWalk/IntWalk_PWalking.cxx Diff File
mod - src/math/math_FunctionRoots.cxx Diff File
mod - src/math/math_TrigonometricFunctionRoots.cxx Diff File
mod - src/ShapeAnalysis/ShapeAnalysis_Curve.cxx Diff File
mod - src/ShapeAnalysis/ShapeAnalysis_Wire.cxx Diff File
mod - src/ShapeFix/ShapeFix_EdgeProjAux.cxx Diff File
mod - src/ShapeFix/ShapeFix_Face.cxx Diff File
mod - src/ShapeFix/ShapeFix_IntersectionTool.cxx Diff File
mod - src/ShapeFix/ShapeFix_Wire.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_TranslateEdge.cxx Diff File
mod - tests/boolean/bfuse_complex/F5 Diff File
mod - tests/boolean/bfuse_complex/Q2 Diff File
mod - tests/boolean/bsection/M9 Diff File
mod - tests/boolean/bsection/N4 Diff File
mod - tests/boolean/volumemaker/F8 Diff File
mod - tests/bugs/modalg_2/bug5805_21 Diff File
mod - tests/bugs/modalg_2/bug5805_22 Diff File
mod - tests/bugs/modalg_2/bug5805_23 Diff File
mod - tests/bugs/modalg_2/bug5805_24 Diff File
mod - tests/bugs/modalg_2/bug5805_41 Diff File
mod - tests/bugs/modalg_2/bug5805_43 Diff File
mod - tests/bugs/modalg_4/bug714 Diff File
mod - tests/bugs/modalg_5/bug24200 Diff File
mod - tests/bugs/modalg_5/bug24303 Diff File
mod - tests/bugs/modalg_5/bug25175 Diff File
mod - tests/bugs/modalg_6/bug25908 Diff File
mod - tests/bugs/moddata_1/bug16119 Diff File
mod - tests/bugs/moddata_1/bug22759 Diff File
mod - tests/bugs/moddata_2/bug36 Diff File
mod - tests/bugs/moddata_2/bug498 Diff File
mod - tests/bugs/moddata_3/bug25207 Diff File
mod - tests/de/iges_1/F9 Diff File
mod - tests/de/iges_1/J2 Diff File
mod - tests/de/iges_1/J3 Diff File
mod - tests/de/iges_1/J9 Diff File
mod - tests/de/iges_1/K3 Diff File
mod - tests/de/iges_1/L8 Diff File
mod - tests/de/iges_1/M7 Diff File
mod - tests/de/iges_1/O3 Diff File
mod - tests/de/iges_1/O4 Diff File
mod - tests/de/iges_1/P5 Diff File
mod - tests/de/iges_1/P7 Diff File
mod - tests/de/iges_1/P9 Diff File
mod - tests/de/iges_1/R8 Diff File
mod - tests/de/iges_2/A9 Diff File
mod - tests/de/iges_2/B6 Diff File
mod - tests/de/iges_2/B8 Diff File
mod - tests/de/iges_2/C2 Diff File
mod - tests/de/iges_2/D8 Diff File
mod - tests/de/iges_2/F1 Diff File
mod - tests/de/iges_2/H9 Diff File
mod - tests/de/iges_3/A2 Diff File
mod - tests/de/iges_3/A4 Diff File
mod - tests/de/iges_3/B2 Diff File
mod - tests/de/step_1/A3 Diff File
mod - tests/de/step_1/D9 Diff File
mod - tests/de/step_1/G9 Diff File
mod - tests/de/step_1/J6 Diff File
mod - tests/de/step_1/J8 Diff File
mod - tests/de/step_2/B5 Diff File
mod - tests/de/step_2/B6 Diff File
mod - tests/de/step_2/E7 Diff File
mod - tests/de/step_2/F4 Diff File
mod - tests/de/step_2/M4 Diff File
mod - tests/de/step_2/N8 Diff File
mod - tests/de/step_2/R2 Diff File
mod - tests/de/step_2/S1 Diff File
mod - tests/de/step_2/T1 Diff File
mod - tests/de/step_2/T9 Diff File
mod - tests/de/step_2/U8 Diff File
mod - tests/de/step_2/Y5 Diff File
mod - tests/de/step_3/A4 Diff File
mod - tests/de/step_3/A8 Diff File
mod - tests/de/step_3/A9 Diff File
mod - tests/de/step_3/B9 Diff File
mod - tests/de/step_3/C5 Diff File
mod - tests/de/step_3/D3 Diff File
mod - tests/de/step_3/D8 Diff File
mod - tests/de/step_3/E6 Diff File
mod - tests/de/step_5/A1 Diff File
mod - tests/de/step_5/A4 Diff File
mod - tests/heal/split_angle/F2 Diff File
mod - tests/heal/split_closed_faces/G5 Diff File
mod - tests/offset/wire_closed_inside_0_005/D1 Diff File
mod - tests/offset/wire_closed_inside_0_075/E8 Diff File
mod - tests/offset/wire_closed_outside_0_005/D1 Diff File
mod - tests/offset/wire_closed_outside_0_005/E8 Diff File
mod - tests/offset/wire_closed_outside_0_075/E8 Diff File

Issue History

Date Modified Username Field Change
2014-03-04 14:51 azv New Issue
2014-03-04 14:51 azv Assigned To => azv
2014-03-04 16:04 azv Note Added: 0028128
2014-03-04 16:04 azv Assigned To azv => ifv
2014-03-04 16:04 azv Status new => feedback
2014-04-04 17:16 abv Target Version => 6.8.0
2014-08-15 09:13 git Note Added: 0030761
2014-08-15 11:41 kgv Summary Cache data for B-spline curves and surfaces need to be taken out to separate class => Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
2014-09-26 06:13 abv Target Version 6.8.0 => 7.1.0
2015-01-19 09:36 git Note Added: 0036187
2015-01-20 17:52 azv Assigned To ifv => azv
2015-01-20 17:52 azv Status feedback => assigned
2015-03-03 13:33 git Note Added: 0038038
2015-03-03 13:35 azv Note Added: 0038039
2015-03-03 13:35 azv Assigned To azv => abv
2015-03-03 13:35 azv Status assigned => resolved
2015-03-03 13:35 azv Steps to Reproduce Updated
2015-03-03 16:21 azv Note Added: 0038050
2015-03-03 16:21 git Note Added: 0038051
2015-03-05 07:38 abv Note Added: 0038113
2015-03-05 07:38 abv Assigned To abv => azv
2015-03-05 07:38 abv Status resolved => assigned
2015-03-05 08:26 git Note Added: 0038114
2015-03-05 08:29 azv Note Added: 0038115
2015-03-05 08:29 azv Assigned To azv => abv
2015-03-05 08:29 azv Status assigned => resolved
2015-03-05 09:06 azv Assigned To abv => azv
2015-03-05 09:06 azv Status resolved => assigned
2015-03-13 16:01 git Note Added: 0038331
2015-03-13 16:02 azv Note Added: 0038332
2015-03-13 16:02 azv Assigned To azv => abv
2015-03-13 16:02 azv Status assigned => resolved
2015-03-14 22:12 abv Note Added: 0038371
2015-03-16 12:36 git Note Added: 0038388
2015-03-16 12:37 azv Note Added: 0038389
2015-03-23 11:20 abv Relationship added related to 0025970
2015-03-31 18:54 abv Assigned To abv => azn
2015-03-31 18:54 abv Status resolved => assigned
2015-04-07 12:53 git Note Added: 0039303
2015-04-07 12:56 git Note Added: 0039304
2015-04-07 12:57 azv Note Added: 0039305
2015-04-07 12:57 azv Assigned To azn => abv
2015-04-07 12:57 azv Status assigned => resolved
2015-04-15 06:40 abv Relationship added related to 0026042
2015-04-15 08:19 abv Note Added: 0039732
2015-04-15 08:19 abv Assigned To abv => azv
2015-04-15 08:19 abv Status resolved => assigned
2015-04-18 17:52 abv Relationship added related to 0023620
2015-04-30 14:55 git Note Added: 0040479
2015-05-14 14:22 git Note Added: 0040902
2015-05-14 14:28 azv Note Added: 0040903
2015-05-14 14:28 azv Assigned To azv => abv
2015-05-14 14:28 azv Status assigned => resolved
2015-05-14 14:38 abv Note Added: 0040904
2015-05-14 14:38 abv Assigned To abv => bugmaster
2015-05-14 14:38 abv Status resolved => reviewed
2015-05-15 16:17 apv Assigned To bugmaster => apv
2015-05-15 17:14 git Note Added: 0041187
2015-05-15 17:14 apv Note Added: 0041188
2015-05-18 14:39 apv Test case number => Not needed
2015-05-18 14:55 apv Note Added: 0041232
2015-05-18 14:55 apv Assigned To apv => azv
2015-05-18 14:55 apv Status reviewed => assigned
2015-05-18 14:55 apv Note Edited: 0041232
2015-05-22 10:44 azv Relationship added parent of 0026252
2015-05-22 10:55 azv Relationship added related to 0026254
2015-05-22 15:06 git Note Added: 0041433
2015-05-22 15:08 git Note Added: 0041434
2015-05-22 15:08 azv Note Added: 0041435
2015-05-22 15:08 azv Assigned To azv => msv
2015-05-22 15:08 azv Status assigned => resolved
2015-05-22 15:09 azv Assigned To msv => abv
2015-05-22 15:21 abv Note Added: 0041437
2015-05-22 15:21 abv Assigned To abv => bugmaster
2015-05-22 15:21 abv Status resolved => reviewed
2015-05-22 15:40 apv Assigned To bugmaster => apv
2015-05-25 12:54 apv Note Added: 0041485
2015-05-25 12:54 apv Assigned To apv => azv
2015-05-25 12:54 apv Status reviewed => assigned
2015-05-25 14:51 azv Note Added: 0041497
2015-05-25 14:51 azv Assigned To azv => apv
2015-05-25 14:51 azv Status assigned => feedback
2015-05-25 14:59 git Note Added: 0041499
2015-05-26 16:28 git Note Added: 0041576
2015-05-27 16:43 apv Note Added: 0041613
2015-05-27 17:25 apv Note Added: 0041617
2015-05-27 17:25 apv Assigned To apv => bugmaster
2015-05-27 17:25 apv Status feedback => tested
2015-05-29 14:15 bugmaster Changeset attached => occt master 94f71cad
2015-05-29 14:15 bugmaster Status tested => verified
2015-05-29 14:15 bugmaster Resolution open => fixed
2015-05-29 14:19 bugmaster Target Version 7.1.0 => 7.0.0
2015-08-14 11:00 git Note Added: 0044258
2015-08-14 11:00 git Note Added: 0044265
2015-08-14 11:02 git Note Added: 0044290
2015-08-14 11:02 git Note Added: 0044291
2015-08-14 11:02 git Note Added: 0044293
2015-08-14 11:02 git Note Added: 0044296
2015-08-14 11:02 git Note Added: 0044299
2015-08-14 11:02 git Note Added: 0044302
2015-12-04 18:01 Roman Lygin Note Added: 0048759
2016-01-24 10:35 Roman Lygin Relationship added related to 0027107
2016-04-20 15:43 aiv Fixed in Version => 7.0.0
2016-04-20 15:49 aiv Status verified => closed
2018-06-14 09:37 abv Relationship added parent of 0029769
2021-06-16 20:46 kgv Relationship added related to 0032449