DiscussionsIssue archiveOCCT:Visualization

Archived issue #0022940

Selection performance: TopAbs_SHELL

CommunityOCCT:Visualizationclosed9 public notes

Search issues

Description

I have made a change to the code of Attachment 1 (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?

Steps to reproduce

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.

Additional information

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.

Public activity

9 archived notes

Participants are labeled by their role within this record.

01Author
Sample file was added before so the issue status should be set to resolved according to the dev workflow
02Commenter 2
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.
03Commenter 3
SVN Branch [archived branch] has been reviewed and is ready for testing.
04Commenter 2
Dear Commenter 1,
  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/Attachment 1 (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/Attachment 1 (CXX):674: error: 'PI' was not declared in this scope
Info : ----------------------- Compilation Report -----------------------
Info : Failed : :KAS:dev:apn-22940-occt:StdSelect:source:Attachment 1 (CXX)
Info : -----------------------------------------------------------------
05Commenter 5
Merge error corrected
06Commenter 6
The SVN branch has been reviewed and is ready for testing
07Commenter 2
Dear Commenter 1,
   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

08Commenter 1
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/Attachment 1 (CXX)
09Author
Verified. Please close.