View Issue Details

IDProjectCategoryView StatusLast Update
0028789Open CASCADEOCCT:Visualizationpublic2017-09-29 16:28
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.2.0Fixed in Version7.2.0 
Summary0028789: Visualization, TKV3d - extend API for accessing and assigning BVH builders
DescriptionIt is desired extending existing Selection API to provide access to BVH builders used for various operations.

In addition, some non-virtual methods in selection which used intensively can be moved to header file for better inlining (e.g. less overhead for small entities).
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed

Relationships

related to 0028778 closedbugmaster Open CASCADE Coding Rules - clean up confusing code from Select3D 
related to 0028793 closedbugmaster Open CASCADE Visualization, TKV3d - make BVH_Builder::Build() const for propagating builder by value 

Activities

git

2017-05-26 10:50

administrator   ~0066624

Branch CR28789 has been created by kgv.

SHA-1: b75043511602a0ccc68ad90157b830fa99c03457


Detailed log of new commits:

Author: kgv
Date: Fri May 26 10:45:22 2017 +0300

    0028789: Visualization, TKV3d - move several selection methods to header file for better inlining

git

2017-05-30 22:27

administrator   ~0066901

Branch CR28789_1 has been created by kgv.

SHA-1: ac0d11a19227b52328be632525e24f73ce0b004c


Detailed log of new commits:

Author: kgv
Date: Fri May 26 10:45:22 2017 +0300

    Add note to upgrade guide.

Author: kgv
Date: Tue May 30 13:43:59 2017 +0300

    Define global BVH-builders instead of allocating a new one for each object set.
    
    SelectMgr_ViewerSelector - added new method ::SetEntitySetBuilder() defining
    default BVH Tree builder for SelectMgr_SensitiveEntitySet.
    
    Added new method SelectMgr_SensitiveEntitySet::SetBuilder()
    for overriding default BVH tree builder.

Author: kgv
Date: Tue May 30 13:43:59 2017 +0300

    BVH - replaced NCollection_Handle with Standard_Transient handle
    in classes BVH_Properties, BVH_Builder, BVH_Tree, BVH_Object.

Author: kgv
Date: Tue May 30 13:43:59 2017 +0300

    BVH_Constants - added new enumeration defining common constant values used with BVH trees.

Author: kgv
Date: Fri May 26 10:45:22 2017 +0300

    0028789: Visualization, TKV3d - extend API for accessing and assigning BVH builders
    
    Several methods in Selection classes have been moved to header files for better inlining.

git

2017-05-30 22:29

administrator   ~0066902

Branch CR28789_2 has been created by kgv.

SHA-1: 5d32fb406c8ba60ac270d5d78ba5d7cacc1e5ca6


Detailed log of new commits:

Author: kgv
Date: Fri May 26 10:45:22 2017 +0300

    0028789: Visualization, TKV3d - extend API for accessing and assigning BVH builders
    
    Several methods in Selection classes have been moved to header files for better inlining.
    
    BVH_Constants - added new enumeration defining common constant values used with BVH trees.
    BVH - replaced NCollection_Handle with Standard_Transient handle
    in classes BVH_Properties, BVH_Builder, BVH_Tree, BVH_Object.
    
    Defined global BVH-builders instead of allocating a new one for each object set.
    SelectMgr_ViewerSelector - added new method ::SetEntitySetBuilder() defining
    default BVH Tree builder for SelectMgr_SensitiveEntitySet.
    
    Added new method SelectMgr_SensitiveEntitySet::SetBuilder()
    for overriding default BVH tree builder.

kgv

2017-05-30 22:29

developer   ~0066903

Patch is ready for review.

apl

2017-06-02 16:58

developer   ~0067032

Dear bugmaster,

Please test the patch.

apv

2017-06-02 18:04

tester   ~0067034

Dear kgv,

Please rebase branch CR28789_2 on the current master. Thank you in advance.

git

2017-06-02 18:15

administrator   ~0067039

Branch CR28789_2 has been updated forcibly by kgv.

SHA-1: 5e08d5bbb62372d2abfc903b3f9b802813788253

kgv

2017-06-02 18:17

developer   ~0067041

Rebased.

mkv

2017-06-05 14:51

tester   ~0067079

Dear BugMaster,
Branch CR28789_2 from occt git-repository (and CR28789_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms on Release mode.
SHA-1: 5e08d5bbb62372d2abfc903b3f9b802813788253
SHA-1: b025f839a30c69e0c33681e1036d537129cb11c7

There are compilation errors :
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-OCCT-Debian70-64-opt-compile/1/parsed_console/
/dn54/builds/CR28789_2-CR28789_2/Debian70-64-opt/OCCT/src/BRepExtrema/BRepExtrema_TriangleSet.hxx:86:3: error: static assertion failed: OCCT RTTI definition is incorrect: BVH_ObjectTransient is not direct base class of BRepExtrema_TriangleSet

/dn54/builds/CR28789_2-CR28789_2/Debian70-64-opt/OCCT/src/BRepExtrema/BRepExtrema_TriangleSet.hxx:86:3: error: static assertion failed: OCCT RTTI definition is incorrect: BVH_ObjectTransient is not direct base class of BRepExtrema_TriangleSet

/dn54/builds/CR28789_2-CR28789_2/Debian70-64-opt/OCCT/src/BRepExtrema/BRepExtrema_TriangleSet.hxx:86:3: error: static assertion failed: OCCT RTTI definition is incorrect: BVH_ObjectTransient is not direct base class of BRepExtrema_TriangleSet


http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-OCCT-MacOS-opt-compile/1/parsed_console/
/Users/mnt/builds/CR28789_2-CR28789_2/MacOS-opt/OCCT/src/Select3D/Select3D_SensitiveSet.hxx:42:54: error: extra qualification on member 'SetDefaultBVHBuilder'

git

2017-06-05 16:23

administrator   ~0067085

Branch CR28789_2 has been updated by kgv.

SHA-1: 1325a62f44ded25b6e93defa73a57d9da1a20d8b


Detailed log of new commits:

Author: kgv
Date: Mon Jun 5 16:23:35 2017 +0300

    # fix compilation errors

kgv

2017-06-05 16:33

developer   ~0067091

Please check updated patch.

mkv

2017-06-06 16:56

tester   ~0067139

Dear BugMaster,
Branch CR28789_2 from occt git-repository (and CR28789_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 1325a62f44ded25b6e93defa73a57d9da1a20d8b
SHA-1: b025f839a30c69e0c33681e1036d537129cb11c7

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 2 (0 on master)

products component :
Linux:
Windows: 1 (0 on master)
MacOS :

There are new additional compilation warnings on MacOS and Windows platforms:
http://jenkins-test-07.nnov.opencascade.com:8080/user/mnt/my-views/view/A_mnt_warnings/portlet/dashboard_portlet_13912/job/CR28789_2-CR28789_2-OCCT-MacOS-opt-compile/1/warnings9Result/
OpenGl_SceneGeometry.hxx:208, Clang (LLVM based), Priority: Normal
'Box' overrides a member function but is not marked 'override'
OpenGl_SceneGeometry.hxx:214, Clang (LLVM based), Priority: Normal
'Center' overrides a member function but is not marked 'override'

http://jenkins-test-07.nnov.opencascade.com:8080/user/mnt/my-views/view/A_mnt_warnings/portlet/dashboard_portlet_13912/job/CR28789_2-CR28789_2-Products-Windows-64-VC10-opt-compile/1/warnings40Result/
BestFit_PrimitiveSet.hxx:34, MSBuild, Priority: Normal
'BestFit_PrimitiveSet' : base-class 'Standard_Transient' is already a base-class of 'BVH_PrimitiveSet'


There are compilation errors:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-Debian70-64-opt-compile/1/parsed_console/
/dn61/builds/CR28789_2-CR28789_2/Debian70-64-opt/OCCT/inc/Standard_Handle.hxx:125:65: error: 'Standard_Transient' is an ambiguous base of 'BestFit_PrimitiveSet'

http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-MacOS-opt-compile/1/parsed_console/
/Users/mnt/install/CR28789_2-CR28789_2/MacOS-opt/OCCT/include/opencascade/Standard_Handle.hxx:125:37: error: ambiguous cast from base 'Standard_Transient' to derived 'BestFit_PrimitiveSet':

http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-Windows-64-VC10-mfc-samples/1/parsed_console/
1>ROPview\CoolMenu.cpp(330): error C2589: '(' : illegal token on right side of '::'
1>ROPview\CoolMenu.cpp(330): error C2059: syntax error : '::'
1>ROPview\CoolMenu.cpp(334): error C2589: '(' : illegal token on right side of '::'
1>ROPview\CoolMenu.cpp(334): error C2059: syntax error : '::'

http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-Windows-64-VC10-training/1/parsed_console/
1>OCAFExerciseView.cpp(581): error C2589: '(' : illegal token on right side of '::'
1>OCAFExerciseView.cpp(581): error C2059: syntax error : '::'
1>OCAFExerciseView.cpp(581): error C2589: '(' : illegal token on right side of '::'
1>OCAFExerciseView.cpp(581): error C2059: syntax error : '::'

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 92118369 / 91726153 [+0.43%]
Total CPU difference: 19114.72000000035 / 18756.150000000256 [+1.91%]

Testing on Windows:
occt component :
Total MEMORY difference: 58567584 / 58848397 [-0.48%]
Total CPU difference: 17357.76326699871 / 17514.55987209864 [-0.90%]
products component :
Total MEMORY difference: 24256058 / 24251584 [+0.02%]
Total CPU difference: 6158.15507510006 / 6213.800631800075 [-0.90%]

There are no differences in images found by testdiff.

mkv

2017-06-06 16:56

tester   ~0067140

Dear kgv,
Branch CR28789_2 has been rejected due to:
- new additional compilation warnings
- compilation errors

git

2017-06-06 17:03

administrator   ~0067141

Branch CR28789_2 has been updated by kgv.

SHA-1: 88052839af8c0e8c1dad384a007fa569f6c83c95


Detailed log of new commits:

Author: kgv
Date: Tue Jun 6 17:03:35 2017 +0300

    # fix CLang compiler warnings

kgv

2017-06-06 17:14

developer   ~0067143

Please check compilation on updated patch.
Regression testing of already tested parts is not needed.

mkv

2017-06-07 13:25

tester   ~0067179

Dear BugMaster,
Branch CR28789_2 from occt git-repository (and CR28789_2 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 88052839af8c0e8c1dad384a007fa569f6c83c95
SHA-1: 8ca6f81e648b44edee07bf8082261fe217da4a3e

Number of compiler warnings:

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

products component :
Linux: 64 (64 on master)
Windows: 0 (0 on master)
MacOS : 1189

There are compilation errors:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-Windows-64-VC10-mfc-samples/1/parsed_console/
1>ROPview\CoolMenu.cpp(334): error C2668: 'Max' : ambiguous call to overloaded function

http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28789_2-CR28789_2/job/CR28789_2-CR28789_2-Products-Windows-64-VC10-training/1/parsed_console/
1>ShapeHealingView.cpp(549): error C2589: '(' : illegal token on right side of '::'
1>ShapeHealingView.cpp(549): error C2059: syntax error : '::'
1>ShapeHealingView.cpp(549): error C2589: '(' : illegal token on right side of '::'
1>ShapeHealingView.cpp(549): error C2059: syntax error : '::'

1>ExerciseView.cpp(545): error C2589: '(' : illegal token on right side of '::'
1>ExerciseView.cpp(545): error C2059: syntax error : '::'
1>ExerciseView.cpp(545): error C2589: '(' : illegal token on right side of '::'
1>ExerciseView.cpp(545): error C2059: syntax error : '::'

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 92120526 / 91740662 [+0.41%]
Total CPU difference: 19069.000000000382 / 18756.150000000256 [+1.67%]
products component :
Total MEMORY difference: 33615093 / 33639153 [-0.07%]
Total CPU difference: 6218.560000000075 / 6199.250000000062 [+0.31%]
Testing on Windows:
occt component :
Total MEMORY difference: 58568420 / 58848397 [-0.48%]
Total CPU difference: 17558.536553998674 / 17514.55987209864 [+0.25%]
products component :
Total MEMORY difference: 24256050 / 24251584 [+0.02%]
Total CPU difference: 6233.019955000054 / 6213.800631800075 [+0.31%]

There are no differences in images found by testdiff.

mkv

2017-06-07 13:25

tester   ~0067180

Dear kgv,
Branch CR28789_2 has been rejected due to:
- compilation errors

kgv

2017-06-07 13:52

developer   ~0067182

Please check compilation of samples/training in Products within updated patch.

mkv

2017-06-07 17:16

tester   ~0067200

Dear BugMaster,
Branch CR28789_2 from products git-repository was recompiled on Windows platforms on Release mode.
Compilations of samples and training are OK.

mkv

2017-06-07 17:16

tester   ~0067201

Dear BugMaster,
Branch CR28789_2 from occt git-repository and branch CR28789_2 from products git-repository are TESTED.

git

2017-06-13 17:34

administrator   ~0067340

Branch CR28789 has been deleted by kgv.

SHA-1: b75043511602a0ccc68ad90157b830fa99c03457

git

2017-06-13 17:34

administrator   ~0067341

Branch CR28789_1 has been deleted by kgv.

SHA-1: ac0d11a19227b52328be632525e24f73ce0b004c

git

2017-06-13 17:34

administrator   ~0067342

Branch CR28789_2 has been deleted by kgv.

SHA-1: 88052839af8c0e8c1dad384a007fa569f6c83c95

Related Changesets

occt: master f5b72419

2017-05-26 07:45:22

kgv


Committer: bugmaster Details Diff
0028789: Visualization, TKV3d - extend API for accessing and assigning BVH builders

Several methods in Selection classes have been moved to header files for better inlining.

BVH_Constants - added new enumeration defining common constant values used with BVH trees.
BVH - replaced NCollection_Handle with Standard_Transient handle
in classes BVH_Properties, BVH_Builder, BVH_Tree, BVH_Object.

Defined global BVH-builders instead of allocating a new one for each object set.
SelectMgr_ViewerSelector - added new method ::SetEntitySetBuilder() defining
default BVH Tree builder for SelectMgr_SensitiveEntitySet.

Added new method SelectMgr_SensitiveEntitySet::SetBuilder()
for overriding default BVH tree builder.
Affected Issues
0028789
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - src/BRepExtrema/BRepExtrema_OverlapTool.cxx Diff File
mod - src/BRepExtrema/BRepExtrema_TriangleSet.cxx Diff File
mod - src/BRepExtrema/BRepExtrema_TriangleSet.hxx Diff File
mod - src/BVH/BVH.cxx Diff File
mod - src/BVH/BVH_BinnedBuilder.hxx Diff File
mod - src/BVH/BVH_Box.hxx Diff File
mod - src/BVH/BVH_Builder.hxx Diff File
add - src/BVH/BVH_Constants.hxx Diff File
mod - src/BVH/BVH_DistanceField.lxx Diff File
mod - src/BVH/BVH_Geometry.hxx Diff File
mod - src/BVH/BVH_LinearBuilder.hxx Diff File
mod - src/BVH/BVH_Object.hxx Diff File
mod - src/BVH/BVH_ObjectSet.hxx Diff File
mod - src/BVH/BVH_PrimitiveSet.hxx Diff File
add - src/BVH/BVH_PrimitiveSet3d.hxx Diff File
mod - src/BVH/BVH_Properties.cxx Diff File
mod - src/BVH/BVH_Properties.hxx Diff File
mod - src/BVH/BVH_RadixSorter.hxx Diff File
mod - src/BVH/BVH_SpatialMedianBuilder.hxx Diff File
mod - src/BVH/BVH_SweepPlaneBuilder.hxx Diff File
mod - src/BVH/BVH_Tree.hxx Diff File
mod - src/BVH/BVH_Triangulation.hxx Diff File
mod - src/BVH/BVH_Types.hxx Diff File
mod - src/BVH/FILES Diff File
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.cxx Diff File
mod - src/OpenGl/OpenGl_BVHClipPrimitiveSet.hxx Diff File
mod - src/OpenGl/OpenGl_BVHClipPrimitiveTrsfPersSet.cxx Diff File
mod - src/OpenGl/OpenGl_BVHClipPrimitiveTrsfPersSet.hxx Diff File
mod - src/OpenGl/OpenGl_Layer.cxx Diff File
mod - src/OpenGl/OpenGl_Layer.hxx Diff File
mod - src/OpenGl/OpenGl_LayerList.cxx Diff File
mod - src/OpenGl/OpenGl_LayerList.hxx Diff File
mod - src/OpenGl/OpenGl_View.cxx Diff File
mod - src/OpenGl/OpenGl_View.hxx Diff File
mod - src/OpenGl/OpenGl_View_Raytrace.cxx Diff File
mod - src/Select3D/FILES Diff File
add - src/Select3D/Select3D_BVHBuilder3d.hxx Diff File
mod - src/Select3D/Select3D_SensitiveSet.cxx Diff File
mod - src/Select3D/Select3D_SensitiveSet.hxx Diff File
mod - src/SelectBasics/SelectBasics_SensitiveEntity.cxx Diff File
mod - src/SelectBasics/SelectBasics_SensitiveEntity.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObjectSet.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObjectSet.hxx Diff File
mod - src/SelectMgr/SelectMgr_Selection.cxx Diff File
mod - src/SelectMgr/SelectMgr_SensitiveEntity.cxx Diff File
mod - src/SelectMgr/SelectMgr_SensitiveEntity.hxx Diff File
mod - src/SelectMgr/SelectMgr_SensitiveEntitySet.cxx Diff File
mod - src/SelectMgr/SelectMgr_SensitiveEntitySet.hxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.hxx Diff File
mod - src/StdSelect/StdSelect_BRepSelectionTool.cxx Diff File

Issue History

Date Modified Username Field Change
2017-05-26 09:28 kgv New Issue
2017-05-26 09:28 kgv Assigned To => kgv
2017-05-26 10:50 git Note Added: 0066624
2017-05-26 10:51 kgv Relationship added related to 0028778
2017-05-30 22:15 kgv Summary Visualization, TKV3d - move several selection methods to header file for better inlining => Visualization, TKV3d - extend API for accessing and assigning BVH builders
2017-05-30 22:15 kgv Description Updated
2017-05-30 22:16 kgv Relationship added related to 0028793
2017-05-30 22:27 git Note Added: 0066901
2017-05-30 22:29 git Note Added: 0066902
2017-05-30 22:29 kgv Note Added: 0066903
2017-05-30 22:29 kgv Assigned To kgv => san
2017-05-30 22:29 kgv Status new => resolved
2017-05-31 15:52 kgv Assigned To san => apl
2017-06-02 16:58 apl Note Added: 0067032
2017-06-02 16:58 apl Assigned To apl => bugmaster
2017-06-02 16:58 apl Status resolved => reviewed
2017-06-02 17:04 apv Assigned To bugmaster => apv
2017-06-02 17:48 apv Test case number => Not needed
2017-06-02 18:04 apv Note Added: 0067034
2017-06-02 18:04 apv Assigned To apv => kgv
2017-06-02 18:04 apv Status reviewed => feedback
2017-06-02 18:15 git Note Added: 0067039
2017-06-02 18:17 kgv Note Added: 0067041
2017-06-02 18:17 kgv Assigned To kgv => bugmaster
2017-06-02 18:17 kgv Status feedback => reviewed
2017-06-02 18:28 mkv Assigned To bugmaster => mkv
2017-06-05 14:51 mkv Note Added: 0067079
2017-06-05 14:51 mkv Assigned To mkv => kgv
2017-06-05 14:51 mkv Status reviewed => assigned
2017-06-05 16:23 git Note Added: 0067085
2017-06-05 16:33 kgv Note Added: 0067091
2017-06-05 16:33 kgv Assigned To kgv => bugmaster
2017-06-05 16:33 kgv Status assigned => resolved
2017-06-05 16:34 kgv Status resolved => reviewed
2017-06-05 16:35 mkv Assigned To bugmaster => mkv
2017-06-06 16:56 mkv Note Added: 0067139
2017-06-06 16:56 mkv Note Added: 0067140
2017-06-06 16:56 mkv Assigned To mkv => kgv
2017-06-06 16:56 mkv Status reviewed => assigned
2017-06-06 17:03 git Note Added: 0067141
2017-06-06 17:14 kgv Note Added: 0067143
2017-06-06 17:14 kgv Assigned To kgv => bugmaster
2017-06-06 17:14 kgv Status assigned => resolved
2017-06-06 17:14 kgv Status resolved => reviewed
2017-06-06 17:33 mkv Assigned To bugmaster => mkv
2017-06-07 13:25 mkv Note Added: 0067179
2017-06-07 13:25 mkv Note Added: 0067180
2017-06-07 13:25 mkv Assigned To mkv => kgv
2017-06-07 13:25 mkv Status reviewed => assigned
2017-06-07 13:52 kgv Note Added: 0067182
2017-06-07 13:52 kgv Assigned To kgv => bugmaster
2017-06-07 13:52 kgv Status assigned => resolved
2017-06-07 13:52 kgv Status resolved => reviewed
2017-06-07 15:03 mkv Assigned To bugmaster => mkv
2017-06-07 17:16 mkv Note Added: 0067200
2017-06-07 17:16 mkv Note Added: 0067201
2017-06-07 17:16 mkv Assigned To mkv => bugmaster
2017-06-07 17:16 mkv Status reviewed => tested
2017-06-09 14:06 bugmaster Changeset attached => occt master f5b72419
2017-06-09 14:06 bugmaster Status tested => verified
2017-06-09 14:06 bugmaster Resolution open => fixed
2017-06-13 17:34 git Note Added: 0067340
2017-06-13 17:34 git Note Added: 0067341
2017-06-13 17:34 git Note Added: 0067342
2017-09-29 16:18 aiv Fixed in Version => 7.2.0
2017-09-29 16:28 aiv Status verified => closed