occt: master 099f3513

Author Committer Branch Timestamp Parent
apl bugmaster master 2016-09-09 12:53:58 master c1070321
Changeset 0027739: Visualization, TKV3d - implement individual acceleration data structure for selection of 2D persistent objects

Low-level selection algorithms has been improved to explicitly support 2D
transformation persistent objects. This patch generally touches:

1) SelectMgr_SelectableObjectSet - the lists of objects has been split onto three
subsets (regular, 3d-persistent, 2d-persistent). Each subset has individual BVH
tree. The algorithms are now have more flexibility to update only those trees
that is really required for actual camera state.

2) SelectMgr_ViewerSelector - explicitly supports Eye space selection operations
on BVH tree for 2d-persistent subset. Change of camera position does not
anymore affect acceleration data structure (BVH tree) of 2d-persistent selectable objects.

3) Other classes from SelectMgr have been fine-tuned to provide appropriate API.

Porting notes:

This patch touches very low-level selection classes. If the low-level features were used
the following modifications may need to be considered for porting:

1) Iteration over objects of SelectMgr_SelectableObjectSet should now
be implemented with corresponding Iterator class.

2) SelectMgr_BaseFrustum::ScaleAndTransform and derived classes return
Handle(SelectMgr_BaseFrustum) instead of NCollection_Handle<> type.

Small correction of test case for issue CR27739
mod - src/SelectMgr/FILES Diff File
mod - src/SelectMgr/SelectMgr_BaseFrustum.cxx Diff File
mod - src/SelectMgr/SelectMgr_BaseFrustum.hxx Diff File
mod - src/SelectMgr/SelectMgr_FrustumBuilder.cxx Diff File
mod - src/SelectMgr/SelectMgr_FrustumBuilder.hxx Diff File
mod - src/SelectMgr/SelectMgr_RectangularFrustum.cxx Diff File
mod - src/SelectMgr/SelectMgr_RectangularFrustum.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObjectSet.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObjectSet.hxx Diff File
rm - src/SelectMgr/SelectMgr_SelectableObjectTrsfPersSet.cxx Diff File
rm - src/SelectMgr/SelectMgr_SelectableObjectTrsfPersSet.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectingVolumeManager.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectingVolumeManager.hxx Diff File
mod - src/SelectMgr/SelectMgr_TriangularFrustum.cxx Diff File
mod - src/SelectMgr/SelectMgr_TriangularFrustum.hxx Diff File
mod - src/SelectMgr/SelectMgr_TriangularFrustumSet.cxx Diff File
mod - src/SelectMgr/SelectMgr_TriangularFrustumSet.hxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.hxx Diff File
mod - src/StdSelect/StdSelect_ViewerSelector3d.cxx Diff File
add - tests/bugs/vis/bug27739 Diff File