View Issue Details

IDProjectCategoryView StatusLast Update
0031716Open CASCADEOCCT:Visualizationpublic2020-12-10 11:26
ReporterageAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.5.0Fixed in Version7.5.0 
Summary0031716: Visualization, Select3D_SensitiveSet::matches() - avoid building BVH in case of full overlapping by the volume
DescriptionTo improve rectangular selection it is needed to avoid building BVH for Select3D_SensitiveSet if its bounding box is fully overlapped by the selection volume. In this case elementIsInside/overlapsElement functions should be called for all elements of Select3D_SensitiveSet without traversing the BVH tree.
Steps To ReproduceNot required
TagsNo tags attached.
Test case numberNot required

Relationships

related to 0031987 closedbugmaster Open CASCADE Visualization - Slow rectangular selection on models with big number of sensitives 
child of 0030089 closedbugmaster Open CASCADE Visualization - SelectMgr_ViewerSelector::TraverseSensitives() should pass Fully Overlapped state to traverseObject() 

Activities

git

2020-08-19 09:29

administrator   ~0093539

Branch CR31716 has been created by age.

SHA-1: 38ed5c979d7e30a89175215fbde665a020e4b472


Detailed log of new commits:

Author: age
Date: Tue Aug 18 10:08:06 2020 +0300

    0031716: Visualization - Select3D_SensitiveSet::matches() shouldn't build BVH in case of full overlapping by the volume

git

2020-08-19 09:49

administrator   ~0093540

Branch CR31716 has been updated forcibly by age.

SHA-1: d25babddb090e35bc9022f133329da732ba6b3a9

age

2020-08-19 11:49

developer   ~0093542

Please review the patch
http://jenkins-test-12.nnov.opencascade.com/view/CR31716-master-AGE/view/COMPARE/

kgv

2020-08-19 12:15

developer   ~0093543

Last edited: 2020-08-19 12:16

Please adjust a commit description to a corrected bug title.
Please put some comparison numbers here on bugtracker showing the performance difference.

+  //! Process elements overlapped by the selection volume
+  //! @param theMgr selection manager
+  //! @param thePickResult picking result (for picking by ray)
+  //! @param theFirstElem index of the first element
+  //! @param theLastElem index of the last element
+  //! @param theIsFullInside when TRUE indicates that entire BVH node is already inside selection volume
+  //! @param theMatchesNb [OUT] number of processed elements
+  Standard_EXPORT Standard_Boolean processElements (SelectBasics_SelectingVolumeManager& theMgr,
+                                                    SelectBasics_PickResult& thePickResult,
+                                                    Standard_Integer theFirstElem,
+                                                    Standard_Integer theLastElem,
+                                                    Standard_Boolean theIsFullInside,
+                                                    Standard_Boolean theToCheckAllInside,
+                                                    Standard_Integer& theMatchesNb);

@return description is missing.
It is better grouping output parameters together - please move theMatchesNb after thePickResult.

git

2020-08-19 12:52

administrator   ~0093545

Branch CR31716 has been updated forcibly by age.

SHA-1: 371fec02e26cb9215aed2c01cc21de222020b518

age

2020-08-19 14:30

developer   ~0093546

Remarks have been fixed

Comparison:
1) Model with 300K faces, 75M triangles
   First time rectangular selection (whole model) - 10s/30s (new/old)
2) 150K faces, 8M triangles - 5s/11s
3) 15K faces, 10M triangles - 4s/10s

kgv

2020-08-19 14:35

developer   ~0093547

Please raise the patch in OCCT branch CR31716.

bugmaster

2020-08-22 16:01

administrator   ~0093591

Combination -
OCCT branch : IR-2020-08-21
master SHA - 1d99a2baaa614856d8ef8b0a9975af5c3bdf92c6
a206de37fbfa0bf71bd534ae47192bbec23b8522
Products branch : IR-2020-08-21 SHA - 9541102e96ff9ee3aeec6e3e32f20f63b3b38556
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17322.48000000014 / 17160.470000000118 [+0.94%]
Products
Total CPU difference: 11882.560000000085 / 11820.020000000079 [+0.53%]
Windows-64-VC14:
OCCT
Total CPU difference: 18716.078125 / 18725.125 [-0.05%]
Products
Total CPU difference: 13242.09375 / 13316.109375 [-0.56%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2020-08-22 16:12

administrator   ~0093601

Branch CR31716 has been deleted by inv.

SHA-1: 371fec02e26cb9215aed2c01cc21de222020b518

Related Changesets

occt: master f3269ef5

2020-08-18 07:08:06

age


Committer: bugmaster Details Diff
0031716: Visualization, Select3D_SensitiveSet::matches() - avoid building BVH in case of full overlapping by the volume Affected Issues
0031716
mod - src/Select3D/Select3D_SensitiveSet.cxx Diff File
mod - src/Select3D/Select3D_SensitiveSet.hxx Diff File

Issue History

Date Modified Username Field Change
2020-08-18 16:04 age New Issue
2020-08-18 16:04 age Assigned To => age
2020-08-18 16:10 kgv Relationship added related to 0030089
2020-08-18 16:11 kgv Relationship replaced child of 0030089
2020-08-18 16:11 kgv Severity minor => feature
2020-08-19 09:29 git Note Added: 0093539
2020-08-19 09:49 git Note Added: 0093540
2020-08-19 09:59 age Status new => assigned
2020-08-19 11:49 age Note Added: 0093542
2020-08-19 11:49 age Assigned To age => kgv
2020-08-19 11:49 age Status assigned => resolved
2020-08-19 11:49 age Steps to Reproduce Updated
2020-08-19 12:13 kgv Summary Visualization - Select3D_SensitiveSet::matches() shouldn't build BVH in case of full overlapping by the volume => Visualization, Select3D_SensitiveSet::matches() - avoid building BVH in case of full overlapping by the volume
2020-08-19 12:15 kgv Note Added: 0093543
2020-08-19 12:15 kgv Assigned To kgv => age
2020-08-19 12:15 kgv Status resolved => assigned
2020-08-19 12:16 kgv Note Edited: 0093543
2020-08-19 12:52 git Note Added: 0093545
2020-08-19 14:30 age Note Added: 0093546
2020-08-19 14:30 age Assigned To age => kgv
2020-08-19 14:30 age Status assigned => resolved
2020-08-19 14:35 kgv Note Added: 0093547
2020-08-19 14:35 kgv Assigned To kgv => bugmaster
2020-08-19 14:35 kgv Status resolved => reviewed
2020-08-22 16:01 bugmaster Note Added: 0093591
2020-08-22 16:01 bugmaster Status reviewed => tested
2020-08-22 16:03 bugmaster Test case number => Not required
2020-08-22 16:06 bugmaster Changeset attached => occt master f3269ef5
2020-08-22 16:06 bugmaster Status tested => verified
2020-08-22 16:06 bugmaster Resolution open => fixed
2020-08-22 16:12 git Note Added: 0093601
2020-12-02 16:43 emo Fixed in Version => 7.5.0
2020-12-02 17:13 emo Status verified => closed
2020-12-10 11:26 kgv Relationship added related to 0031987