MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0024682Open CASCADE[OCCT] OCCT:Modeling Datapublic2014-03-04 14:512018-06-14 09:37
Reporterazv 
Assigned Tobugmaster 
PrioritynormalSeverityfeature 
StatusclosedResolutionfixed 
PlatformWindowsOSVC++ 2010OS Version32 bit
Product Version[OCCT] 6.7.0 
Target Version[OCCT] 7.0.0Fixed in Version[OCCT] 7.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
Attached Files

- Relationships
parent of 0026252closedbugmaster Open CASCADE GeomAdaptor_Surface should use inner adaptor to calculate values of complex surfaces 
parent of 0029769feedbackabv Community Uninitialized data with BSplCLib_Cache, BSplSLib_Cache 
related to 0025970assignedgka Open CASCADE Shape Healing - enable parallel reconstruction of pcurves 
related to 0026042closedbugmaster Community OCCT won't work with the latest Xcode 
related to 0023620closedbugmaster Community Follow up of 0022939 - make Bezier curve/surface evaluation thread-safe 
related to 0026254closedbugmaster Open CASCADE Inject GeomAbs_OffsetCurve into GeomAbs_CurveType enumeration 
related to 0027107closedabv Community ShapeAnalysis_Surface should use GeomAdaptor_Surface for surface evaluation 
Not all the children of this issue are yet resolved or closed.

-  Notes
(0028128)
azv (developer)
2014-03-04 16:04

Please, review the branch CR24682.
(0030761)
git (administrator)
2014-08-15 09:13

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
(0036187)
git (administrator)
2015-01-19 09:36

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
(0038038)
git (administrator)
2015-03-03 13:33

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
(0038039)
azv (developer)
2015-03-03 13:35

Dear Andrey,

Could you, please, review branch CR24682_3?
(0038050)
azv (developer)
2015-03-03 16:21

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%
(0038051)
git (administrator)
2015-03-03 16:21

Branch CR24682_3 has been updated forcibly by azv.

SHA-1: 7fce2de35b3184c6422033e83763722306c653ef
(0038113)
abv (manager)
2015-03-05 07:38

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
(0038114)
git (administrator)
2015-03-05 08:26

Branch CR24682_3 has been updated forcibly by azv.

SHA-1: 8a6d61993fd91a47b0b5a2d4614766ea0af020a4
(0038115)
azv (developer)
2015-03-05 08:29

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.
(0038331)
git (administrator)
2015-03-13 16:01

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.
(0038332)
azv (developer)
2015-03-13 16:02

Dear Andrey,

Could you, please, review branch CR24682_5?
(0038371)
abv (manager)
2015-03-14 22:12

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.
(0038388)
git (administrator)
2015-03-16 12:36

Branch CR24682_5 has been updated forcibly by azv.

SHA-1: f31387db4de91e5372d4f1ce06759ad46d430f17
(0038389)
azv (developer)
2015-03-16 12:37

Branch CR24682_5 rebased on latest master
(0039303)
git (administrator)
2015-04-07 12:53

Branch CR24682_5 has been updated forcibly by azv.

SHA-1: 7272595c839e1c3c85a58c3735d5e3f800128bfc
(0039304)
git (administrator)
2015-04-07 12:56

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.
(0039305)
azv (developer)
2015-04-07 12:57

Dear Andrey,

Please review current state of branch CR24682_6. It has small modifications to avoid regressions on the current master
(0039732)
abv (manager)
2015-04-15 08:19

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
(0040479)
git (administrator)
2015-04-30 14:55

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
(0040902)
git (administrator)
2015-05-14 14:22

Branch CR24682_7 has been updated forcibly by azv.

SHA-1: be32e7abf4f03ccd1b6df3b89d3bfa3dd9c60a38
(0040903)
azv (developer)
2015-05-14 14:28

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%
(0040904)
abv (manager)
2015-05-14 14:38

Reviewed, please test
(0041187)
git (administrator)
2015-05-15 17:14

Branch CR24682_7 has been updated forcibly by apv.

SHA-1: b55ddb391d084718ecfe1ce6c0e8fc86f7d1eeac
(0041188)
apv (tester)
2015-05-15 17:14

Branch CR24682_7 has been rebased on the current master
(0041232)
apv (tester)
2015-05-18 14:55
edited on: 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%]

(0041433)
git (administrator)
2015-05-22 15:06

Branch CR24682_7 has been updated forcibly by azv.

SHA-1: 449c918ad3db3796c5879aae5905ffbb85b81a23
(0041434)
git (administrator)
2015-05-22 15:08

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
(0041435)
azv (developer)
2015-05-22 15:08

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
(0041437)
abv (manager)
2015-05-22 15:21

Reviewed, please test
(0041485)
apv (tester)
2015-05-25 12:54

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%]
(0041497)
azv (developer)
2015-05-25 14:51

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.
(0041499)
git (administrator)
2015-05-25 14:59

Branch CR24682_8 has been updated forcibly by azv.

SHA-1: c4e8923ba489ad9d308324e8b29ff418f404ac39
(0041576)
git (administrator)
2015-05-26 16:28

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.

(0041613)
apv (tester)
2015-05-27 16:43

Branch CR24682 has been created in products git-repository to update test-cases according to the new behavior.
(0041617)
apv (tester)
2015-05-27 17:25

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%]
(0044258)
git (administrator)
2015-08-14 11:00

Branch CR24682_8 has been deleted by inv.

SHA-1: 62ccf8f05898f0d1a80e7bf2142327e2437d315b
(0044265)
git (administrator)
2015-08-14 11:00

Branch CR24682_7 has been deleted by inv.

SHA-1: 449c918ad3db3796c5879aae5905ffbb85b81a23
(0044290)
git (administrator)
2015-08-14 11:02

Branch CR24682_6 has been deleted by inv.

SHA-1: 09450223b20a0b99dbf28454681afcfff0541919
(0044291)
git (administrator)
2015-08-14 11:02

Branch CR24682_5 has been deleted by inv.

SHA-1: 7272595c839e1c3c85a58c3735d5e3f800128bfc
(0044293)
git (administrator)
2015-08-14 11:02

Branch CR24682_3 has been deleted by inv.

SHA-1: 8a6d61993fd91a47b0b5a2d4614766ea0af020a4
(0044296)
git (administrator)
2015-08-14 11:02

Branch CR24682_2 has been deleted by inv.

SHA-1: 500c64a05e7da25eb4589bf249bb4e535e8c8b90
(0044299)
git (administrator)
2015-08-14 11:02

Branch CR24682_1 has been deleted by inv.

SHA-1: bc348a371fc5d9dfbae79da0bb883d9d5809c2b0
(0044302)
git (administrator)
2015-08-14 11:02

Branch CR24682 has been deleted by inv.

SHA-1: 105afd233180330897186c664a063d46b6bec6f6
(0048759)
Roman Lygin (updater)
2015-12-04 18:01

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

- Related Changesets
occt: master 94f71cad
Timestamp: 2015-05-28 10:36:57
Author: 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.
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 14:53 azv Relationship added child of 0024238
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 View Revisions
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 View Revisions
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


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker