MantisBT - Community
View Issue Details
0022940Community[OCCT] OCCT:Visualizationpublic2012-01-30 17:472012-04-16 12:33
Pawel 
bugmaster 
normalintegration request 
closedfixed 
WindowsVC++ 200832 bit
[OCCT] 6.5.2 
[OCCT] 6.5.3[OCCT] 6.5.3 
Test case is not required
0022940: Selection performance: TopAbs_SHELL
I have made a change to the code of StdSelect_BRepSelectionTool.cxx described here: http://www.opencascade.org/org/forum/thread_21168/ [^]

Basically, I found out the the selection computation is very slow for TopAbs_SHELLs and applied the selection code for TopAbs_COMPOUNDs for the shells too.

Is there a reason not to do that?

Can this change be integrated into OCCT?
Load and visualize a complex TopAbs_SHELL using XDE. Then load the same model without using XDE (make sure this is TopAbs_SHELL). Hover with the mouse over the model in each case and see how long it takes to compute the selection.
Performance bottleneck in StdSelect_BRepSelectionTool class in case of TopAbs_SHELL shape type has been corrected. Now this class behaves identically for TopAbs_SHELL and TopAbs_SOLID shape types, with an exception of different selection priorities used.
No tags attached.
cxx StdSelect_BRepSelectionTool.cxx (27,970) 2012-01-30 17:47
https://tracker.dev.opencascade.org/
Issue History
2012-01-30 17:47PawelNew Issue
2012-01-30 17:47PawelAssigned To => san
2012-01-30 17:47PawelFile Added: StdSelect_BRepSelectionTool.cxx
2012-02-02 15:56PawelNote Added: 0019361
2012-02-02 15:56PawelStatusnew => resolved
2012-02-07 12:01sanAssigned Tosan => aaa
2012-02-07 12:34sanAssigned Toaaa => san
2012-02-20 12:48sanNote Added: 0019659
2012-02-20 12:53sanNote Added: 0019661
2012-02-20 12:53sanAssigned Tosan => bugmaster
2012-02-20 12:53sanStatusresolved => reviewed
2012-02-20 12:55sanAdditional Information Updatedbug_revision_view_page.php?rev_id=3501#r3501
2012-02-20 13:02apnAssigned Tobugmaster => apn
2012-02-20 16:26apnNote Added: 0019671
2012-02-20 16:27apnAssigned Toapn => san
2012-02-20 16:27apnStatusreviewed => assigned
2012-02-20 16:49sanNote Added: 0019678
2012-02-20 16:49sanStatusassigned => resolved
2012-02-20 16:49sanNote Added: 0019679
2012-02-20 16:49sanAssigned Tosan => bugmaster
2012-02-20 16:49sanStatusresolved => reviewed
2012-02-20 17:04apnAssigned Tobugmaster => apn
2012-02-21 08:58apnNote Added: 0019688
2012-02-21 10:42apnTest case number => Test case is not required
2012-02-21 10:43apnNote Edited: 0019688bug_revision_view_page.php?bugnote_id=19688#r3511
2012-02-21 10:43apnNote Edited: 0019688bug_revision_view_page.php?bugnote_id=19688#r3512
2012-02-21 10:44apnStatusreviewed => tested
2012-02-21 10:44apnAssigned Toapn => bugmaster
2012-02-22 12:59bugmasterNote Added: 0019724
2012-02-22 12:59bugmasterStatustested => verified
2012-02-22 12:59bugmasterResolutionopen => fixed
2012-02-22 12:59bugmasterAssigned Tobugmaster => Pawel
2012-02-22 13:00bugmasterTarget Version => 6.5.3
2012-03-29 17:26bugmasterChangeset attached => occt master 73397899
2012-04-12 16:44PawelNote Added: 0020365
2012-04-16 12:33PawelAssigned ToPawel => bugmaster

Notes
(0019361)
Pawel   
2012-02-02 15:56   
Sample file was added before so the issue status should be set to resolved according to the dev workflow
(0019659)
san   
2012-02-20 12:48   
Re-using TopAbs_COMPOUND selection logic for TopAbs_SHELL shape type results in doing some unnecessary things related to free vertices, edges and wires. A shell never contains such stuff. From selection point of view, a shell is the same as a solid - i.e. a set of sensitive faces. Thus I would rather merge case branches for TopAbs_SHELL and TopAbs_SOLID.
(0019661)
san   
2012-02-20 12:53   
SVN branch OCC22940 has been reviewed and is ready for testing.
(0019671)
apn   
2012-02-20 16:26   
Dear BugMaster,
  Workbench KAS:dev:apn-22940-occt was created from SVN branch http://svn/svn/occt/branches/OCC22940 [^]
  (and apn-22940-products from trunk) and compiled on Linux and Windows platforms.

  There are compilation errors:
/dn47/KAS/dev/apn-22940-occt/src/StdSelect/StdSelect_BRepSelectionTool.cxx: In static member function 'static Standard_Boolean StdSelect_BRepSelectionTool::GetSensitiveForFace(const TopoDS_Face&, const Handle_StdSelect_BRepOwner&, Select3D_ListOfSensitive&, Standard_Boolean, Standard_Integer, Standard_Real, Standard_Boolean)':

/dn47/KAS/dev/apn-22940-occt/src/StdSelect/StdSelect_BRepSelectionTool.cxx:674: error: 'PI' was not declared in this scope
Info : ----------------------- Compilation Report -----------------------
Info : Failed : :KAS:dev:apn-22940-occt:StdSelect:source:StdSelect_BRepSelectionTool.cxx
Info : -----------------------------------------------------------------
(0019678)
san   
2012-02-20 16:49   
Merge error corrected
(0019679)
san   
2012-02-20 16:49   
The SVN branch has been reviewed and is ready for testing
(0019688)
apn   
2012-02-21 08:58   
(edited on: 2012-02-21 10:43)
Dear BugMaster,
   Workbench KAS:dev:apn-22940-occt was created from SVN branch http://svn/svn/occt/branches/OCC22940 [^]
   (and apn-22940-products from trunk) and compiled on Windows and Linux platforms.
   
   There are not regressions in apn-22940-products regarding to KAS:dev:products-20120217-opt

   Test case is not required. I've made "steps to reproduce" in emax.
 
   See results in /QADisk/occttests/results/KAS/dev/ apn-22940-products_20022012/lin
   See reference results in /QADisk/occttests/results/KAS/dev/products-20120217-opt_17022012/lin
   See test cases in /QADisk/occttests/tests/ED

(0019724)
bugmaster   
2012-02-22 12:59   
Integrated into trunk of occt repository


Date: 2012-02-22 11:56:58 +0400 (Wed, 22 Feb 2012)
New Revision: 10582

Modified:
   trunk/src/StdSelect/StdSelect_BRepSelectionTool.cxx
(0020365)
Pawel   
2012-04-12 16:44   
Verified. Please close.