View Issue Details

IDProjectCategoryView StatusLast Update
0024751Open CASCADEOCCT:Modeling Algorithmspublic2014-05-05 13:39
ReporteremvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.7.0 
Target Version6.7.1Fixed in Version6.7.1 
Summary0024751: Performance improvements in the Edge/Edge intersection algorithm
DescriptionPerformance improvements in the Edge/Edge intersection algorithm.
Steps To Reproducerestore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 0 1 1 90
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild r
Additional information
and documentation updates
1. Added new static method PointBoxDistance() to compute distance between point and bounding box.
2. Removed method IntTools_EdgeEdge::FindRoughRanges().
TagsNo tags attached.
Test case numberbugs modalg_5(010) bug24751_1, bug24751_2, bug24751_3, bug24751_4, bug24751_5

Activities

emv

2014-03-25 15:24

developer   ~0028464

Last edited: 2014-03-25 15:41

Git branch CR24751 is ready to be reviewed.

I've got the following results:
# 1.
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 0 0 1 45
bclearo; bcleart;
set edges [explode cx e];set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
chrono t reset; chrono t start; bfillds -s; chrono t stop; chrono t show

OCCT 6.7.0 - 54.6627504 sec
OCCT dev - 36.5555671 sec
CR24751 - 23.3065494 sec

# 2.
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 0 1 1 45
bclearo; bcleart;
set edges [explode cx e];set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
chrono t reset; chrono t start; bfillds -s; chrono t stop; chrono t show

OCCT 6.7.0 - 120.6355733 sec
OCCT dev - 125.2376028 sec
CR24751 - 32.5886089 sec

# 3.
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 1 1 1 45
bclearo; bcleart;
set edges [explode cx e];set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
chrono t reset; chrono t start; bfillds -s; chrono t stop; chrono t show

OCCT 6.7.0 - 136.6256758 sec
OCCT dev - 144.924929 sec
CR24751 - 39.7646549 sec

# 4.
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 0 1 1 90
bclearo; bcleart;
set edges [explode cx e];set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
chrono t reset; chrono t start; bfillds -s; chrono t stop; chrono t show

OCCT 6.7.0 - 131.8832454 sec
OCCT dev - 148.1697498 sec
CR24751 - 42.2138706 sec

# 5.
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
trotate cx 0 0 0 1 1 1 90
bclearo; bcleart;
set edges [explode cx e];set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
chrono t reset; chrono t start; bfillds -s; chrono t stop; chrono t show

OCCT 6.7.0 - 101.5722511 sec
OCCT dev - 110.76071 sec
CR24751 - 35.9114302 sec

pkv

2014-03-26 05:59

developer   ~0028477

Reviewed

mkv

2014-03-27 14:27

tester   ~0028509

Dear BugMaster,

Branch CR24751 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: 214e944630a3d6ad16e4cdb9b36f6ebb9661cf7c

Number of compiler warnings:

occt component :
Linux: 29 (29 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
http://occt-tests/CR24751-master-occt/Debian60-64/bugs/modalg_5/
http://occt-tests/CR24751-master-occt/Windows-32-VC9/bugs/modalg_5
bugs modalg_5 bug24751_1, bug24751_2, bug24751_3, bug24751_4, bug24751_5: OK

Testing on Linux:
Total MEMORY difference: 391380800 / 391531872
Total CPU difference: 52939.49000000006 / 51359.449999999655

Testing on Windows:
Total MEMORY difference: 434111056 / 434230736
Total CPU difference: 36167.125 / 35761.59375

There are no differences in images found by testdiff.

Related Changesets

occt: master 6b1fe48c

2014-03-27 13:10:12

emv


Committer: bugmaster Details Diff
0024751: Performance improvements in the Edge/Edge intersection algorithm

Added new static method PointBoxDistance() to compute distance between point and bounding box.
Removed method IntTools_EdgeEdge::FindRoughRanges().
Test cases for issue CR24751
Affected Issues
0024751
mod - src/IntTools/IntTools_EdgeEdge.cdl Diff File
mod - src/IntTools/IntTools_EdgeEdge.cxx Diff File
add - tests/bugs/modalg_5/bug24751_1 Diff File
add - tests/bugs/modalg_5/bug24751_2 Diff File
add - tests/bugs/modalg_5/bug24751_3 Diff File
add - tests/bugs/modalg_5/bug24751_4 Diff File
add - tests/bugs/modalg_5/bug24751_5 Diff File

Issue History

Date Modified Username Field Change
2014-03-21 17:29 emv New Issue
2014-03-21 17:29 emv Assigned To => emv
2014-03-25 15:24 emv Note Added: 0028464
2014-03-25 15:24 emv Assigned To emv => pkv
2014-03-25 15:24 emv Status new => resolved
2014-03-25 15:24 emv Additional Information Updated
2014-03-25 15:41 emv Note Edited: 0028464
2014-03-26 05:59 pkv Note Added: 0028477
2014-03-26 05:59 pkv Assigned To pkv => mkv
2014-03-26 05:59 pkv Status resolved => reviewed
2014-03-27 14:27 mkv Note Added: 0028509
2014-03-27 14:28 mkv Test case number => bugs modalg_5(010) bug24751_1, bug24751_2, bug24751_3, bug24751_4, bug24751_5
2014-03-27 14:28 mkv Assigned To mkv => bugmaster
2014-03-27 14:28 mkv Status reviewed => tested
2014-03-28 16:38 bugmaster Changeset attached => occt master 6b1fe48c
2014-03-28 16:38 bugmaster Status tested => verified
2014-03-28 16:38 bugmaster Resolution open => fixed
2014-05-05 13:33 aiv Status verified => closed
2014-05-05 13:39 aiv Fixed in Version => 6.7.1