Archived issue #0022940
Selection performance: TopAbs_SHELL
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?
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.
Sample file was added before so the issue status should be set to resolved according to the dev workflow
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.
SVN Branch [archived branch] has been reviewed and is ready for testing.
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 : -----------------------------------------------------------------
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 : -----------------------------------------------------------------
Merge error corrected
The SVN branch has been reviewed and is ready for testing
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
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
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)
Date: 2012-02-22 11:56:58 +0400 (Wed, 22 Feb 2012)
New Revision: 10582
Modified:
trunk/src/StdSelect/Attachment 1 (CXX)
Verified. Please close.