occt: master f751596e

Author Committer Branch Timestamp Parent
vpa bugmaster master 2015-04-06 09:31:00 master 7a91ad6e
Affected Issues  0024623: Visualization - improve selection mechanism
Changeset 0024623: Visualization - improve selection mechanism

Redesign of selection mechanism:
- implemented 3-level BVH tree for selection;
- selection now calculates in 3D space;
- intersection tests were moved to SelectMgr_BaseFrustum descendants;
- removed .cdl files in Select3D and .cdl related to selection in MeshVS;
- SelectMgr_ViewerSelectors are now shared between local and global contexts;
- transformations of sensitive entities are now stored in SelectMgr_SelectableObject only. Sensitive entities are independent from transformations, it is applied to SelectMgr_SelectingVolumeManager instance only;
- connected and multiple connected interactive objects are now represented by their child objects only for SelectMgr_SelectionManager;
- if interactive object has child objects, they will be stored as separate objects in SelectMgr_SelectionManager now.
- test cases bugs/vis/bug24623_1, bug24623_2, bug24623_3, bug24623_4 to test performance and memory issues.
mod - samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj Diff File
mod - samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj.filters Diff File
mod - samples/mfc/standard/01_Geometry/CMakeLists.txt Diff File
rm - samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_SensitiveCurve.cpp Diff File
rm - samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_SensitiveCurve.h Diff File
mod - samples/mfc/standard/01_Geometry/src/StdAfx.h Diff File
mod - samples/mfc/standard/03_Viewer2d/src/StdAfx.h Diff File
mod - samples/mfc/standard/04_Viewer3d/src/Viewer3dView.cpp Diff File
mod - samples/mfc/standard/05_ImportExport/src/StdAfx.h Diff File
mod - samples/mfc/standard/06_Ocaf/src/StdAfx.h Diff File
mod - samples/mfc/standard/08_HLR/src/StdAfx.h Diff File
mod - samples/mfc/standard/09_Animation/src/AnimationView3D.cpp Diff File
mod - samples/mfc/standard/09_Animation/src/StdAfx.h Diff File
mod - samples/mfc/standard/10_Convert/src/WNT/OCCDemoView.cpp Diff File
mod - samples/mfc/standard/Common/OCC_2dView.cpp Diff File
mod - samples/mfc/standard/Common/OCC_3dView.cpp Diff File
mod - samples/mfc/standard/Common/StdAfx.h Diff File
mod - src/AIS/AIS_Axis.cxx Diff File
mod - src/AIS/AIS_Chamf2dDimension.cxx Diff File
mod - src/AIS/AIS_Chamf3dDimension.cxx Diff File
mod - src/AIS/AIS_Circle.cxx Diff File
mod - src/AIS/AIS_ConcentricRelation.cxx Diff File
mod - src/AIS/AIS_ConnectedInteractive.cxx Diff File
mod - src/AIS/AIS_Dimension.cxx Diff File
mod - src/AIS/AIS_Dimension.hxx Diff File
mod - src/AIS/AIS_EqualRadiusRelation.cxx Diff File
mod - src/AIS/AIS_FixRelation.cxx Diff File
mod - src/AIS/AIS_IdenticRelation.cxx Diff File
mod - src/AIS/AIS_InteractiveContext.cdl Diff File
mod - src/AIS/AIS_InteractiveContext.cxx Diff File
mod - src/AIS/AIS_InteractiveContext_1.cxx Diff File
mod - src/AIS/AIS_InteractiveContext_2.cxx Diff File
mod - src/AIS/AIS_InteractiveObject.cdl Diff File
mod - src/AIS/AIS_InteractiveObject.cxx Diff File
mod - src/AIS/AIS_Line.cxx Diff File
mod - src/AIS/AIS_LocalContext.cdl Diff File
mod - src/AIS/AIS_LocalContext.cxx Diff File
mod - src/AIS/AIS_LocalContext_1.cxx Diff File
mod - src/AIS/AIS_MaxRadiusDimension.cxx Diff File
mod - src/AIS/AIS_MidPointRelation.cxx Diff File
mod - src/AIS/AIS_MinRadiusDimension.cxx Diff File
mod - src/AIS/AIS_MultipleConnectedInteractive.cxx Diff File
mod - src/AIS/AIS_OffsetDimension.cxx Diff File
mod - src/AIS/AIS_ParallelRelation.cxx Diff File
mod - src/AIS/AIS_PerpendicularRelation.cxx Diff File
mod - src/AIS/AIS_Plane.lxx Diff File
mod - src/AIS/AIS_PlaneTrihedron.cxx Diff File
mod - src/AIS/AIS_SymmetricRelation.cxx Diff File
mod - src/AIS/AIS_TangentRelation.cxx Diff File
mod - src/BVH/BVH_BinnedBuilder.hxx Diff File
mod - src/BVH/BVH_BinnedBuilder.lxx Diff File
mod - src/BVH/BVH_SpatialMedianBuilder.hxx Diff File
mod - src/BVH/BVH_SpatialMedianBuilder.lxx Diff File
mod - src/IVtk/IVtk_IShapePickerAlgo.hxx Diff File
mod - src/IVtk/IVtk_IView.hxx Diff File
mod - src/IVtkOCC/IVtkOCC_SelectableObject.cxx Diff File
mod - src/IVtkOCC/IVtkOCC_SelectableObject.hxx Diff File
mod - src/IVtkOCC/IVtkOCC_ShapePickerAlgo.cxx Diff File
mod - src/IVtkOCC/IVtkOCC_ShapePickerAlgo.hxx Diff File
mod - src/IVtkOCC/IVtkOCC_ViewerSelector.cxx Diff File
mod - src/IVtkOCC/IVtkOCC_ViewerSelector.hxx Diff File
mod - src/IVtkVTK/IVtkVTK_View.cxx Diff File
mod - src/IVtkVTK/IVtkVTK_View.hxx Diff File
mod - src/MeshVS/FILES Diff File
mod - src/MeshVS/MeshVS.cdl Diff File
rm - src/MeshVS/MeshVS_DummySensitiveEntity.cdl Diff File
mod - src/MeshVS/MeshVS_DummySensitiveEntity.cxx Diff File
add - src/MeshVS/MeshVS_DummySensitiveEntity.hxx Diff File
mod - src/MeshVS/MeshVS_Mesh.cdl Diff File
rm - src/MeshVS/MeshVS_SensitiveFace.cdl Diff File
mod - src/MeshVS/MeshVS_SensitiveFace.cxx Diff File
add - src/MeshVS/MeshVS_SensitiveFace.hxx Diff File
rm - src/MeshVS/MeshVS_SensitiveMesh.cdl Diff File
mod - src/MeshVS/MeshVS_SensitiveMesh.cxx Diff File
add - src/MeshVS/MeshVS_SensitiveMesh.hxx Diff File
rm - src/MeshVS/MeshVS_SensitivePolyhedron.cdl Diff File
mod - src/MeshVS/MeshVS_SensitivePolyhedron.cxx Diff File
add - src/MeshVS/MeshVS_SensitivePolyhedron.hxx Diff File
rm - src/MeshVS/MeshVS_SensitiveSegment.cdl Diff File
mod - src/MeshVS/MeshVS_SensitiveSegment.cxx Diff File
add - src/MeshVS/MeshVS_SensitiveSegment.hxx Diff File
mod - src/PrsMgr/PrsMgr_PresentableObject.cdl Diff File
mod - src/PrsMgr/PrsMgr_PresentableObject.cxx Diff File
mod - src/PrsMgr/PrsMgr_PresentableObject.lxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
mod - src/QABugs/QABugs_9.cxx Diff File
mod - src/QABugs/QABugs_MyText.cdl Diff File
mod - src/QABugs/QABugs_MyText.cxx Diff File
mod - src/Select3D/FILES Diff File
mod - src/Select3D/Select3D.cdl Diff File
add - src/Select3D/Select3D_BoundarySensitivePointSet.cxx Diff File
add - src/Select3D/Select3D_BoundarySensitivePointSet.hxx Diff File
rm - src/Select3D/Select3D_Box2d.hxx Diff File
add - src/Select3D/Select3D_BVHPrimitiveContent.cxx Diff File
add - src/Select3D/Select3D_BVHPrimitiveContent.hxx Diff File
add - src/Select3D/Select3D_EntitySequence.hxx Diff File
add - src/Select3D/Select3D_InteriorSensitivePointSet.cxx Diff File
add - src/Select3D/Select3D_InteriorSensitivePointSet.hxx Diff File
add - src/Select3D/Select3D_ISensitivePointSet.hxx Diff File
rm - src/Select3D/Select3D_Pnt2d.hxx Diff File
mod - src/Select3D/Select3D_PointData.hxx Diff File
rm - src/Select3D/Select3D_Projector.cdl Diff File
rm - src/Select3D/Select3D_Projector.cxx Diff File
rm - src/Select3D/Select3D_Projector.lxx Diff File
rm - src/Select3D/Select3D_SensitiveBox.cdl Diff File
mod - src/Select3D/Select3D_SensitiveBox.cxx Diff File
add - src/Select3D/Select3D_SensitiveBox.hxx Diff File
rm - src/Select3D/Select3D_SensitiveCircle.cdl Diff File
mod - src/Select3D/Select3D_SensitiveCircle.cxx Diff File
add - src/Select3D/Select3D_SensitiveCircle.hxx Diff File
rm - src/Select3D/Select3D_SensitiveCurve.cdl Diff File
mod - src/Select3D/Select3D_SensitiveCurve.cxx Diff File
add - src/Select3D/Select3D_SensitiveCurve.hxx Diff File
rm - src/Select3D/Select3D_SensitiveCurve.lxx Diff File
rm - src/Select3D/Select3D_SensitiveEntity.cdl Diff File
mod - src/Select3D/Select3D_SensitiveEntity.cxx Diff File
add - src/Select3D/Select3D_SensitiveEntity.hxx Diff File
rm - src/Select3D/Select3D_SensitiveFace.cdl Diff File
mod - src/Select3D/Select3D_SensitiveFace.cxx Diff File
add - src/Select3D/Select3D_SensitiveFace.hxx Diff File
rm - src/Select3D/Select3D_SensitiveGroup.cdl Diff File
mod - src/Select3D/Select3D_SensitiveGroup.cxx Diff File
add - src/Select3D/Select3D_SensitiveGroup.hxx Diff File
mod - src/Select3D/Select3D_SensitiveGroup.lxx Diff File
rm - src/Select3D/Select3D_SensitivePoint.cdl Diff File
mod - src/Select3D/Select3D_SensitivePoint.cxx Diff File
add - src/Select3D/Select3D_SensitivePoint.hxx Diff File
rm - src/Select3D/Select3D_SensitivePoly.cdl Diff File
mod - src/Select3D/Select3D_SensitivePoly.cxx Diff File
add - src/Select3D/Select3D_SensitivePoly.hxx Diff File
mod - src/Select3D/Select3D_SensitivePoly.lxx Diff File
rm - src/Select3D/Select3D_SensitiveSegment.cdl Diff File
mod - src/Select3D/Select3D_SensitiveSegment.cxx Diff File
add - src/Select3D/Select3D_SensitiveSegment.hxx Diff File
mod - src/Select3D/Select3D_SensitiveSegment.lxx Diff File
add - src/Select3D/Select3D_SensitiveSet.cxx Diff File
add - src/Select3D/Select3D_SensitiveSet.hxx Diff File
rm - src/Select3D/Select3D_SensitiveTriangle.cdl Diff File
mod - src/Select3D/Select3D_SensitiveTriangle.cxx Diff File
add - src/Select3D/Select3D_SensitiveTriangle.hxx Diff File
rm - src/Select3D/Select3D_SensitiveTriangulation.cdl Diff File
mod - src/Select3D/Select3D_SensitiveTriangulation.cxx Diff File
add - src/Select3D/Select3D_SensitiveTriangulation.hxx Diff File
mod - src/Select3D/Select3D_SensitiveTriangulation.lxx Diff File
rm - src/Select3D/Select3D_SensitiveWire.cdl Diff File
mod - src/Select3D/Select3D_SensitiveWire.cxx Diff File
add - src/Select3D/Select3D_SensitiveWire.hxx Diff File
add - src/Select3D/Select3D_TypeOfSensitivity.hxx Diff File
mod - src/SelectBasics/FILES Diff File
mod - src/SelectBasics/SelectBasics.cdl Diff File
rm - src/SelectBasics/SelectBasics_BasicTool.cdl Diff File
rm - src/SelectBasics/SelectBasics_BasicTool.cxx Diff File
mod - src/SelectBasics/SelectBasics_EntityOwner.cxx Diff File
rm - src/SelectBasics/SelectBasics_PickArgs.hxx Diff File
add - src/SelectBasics/SelectBasics_PickResult.hxx Diff File
add - src/SelectBasics/SelectBasics_SelectingVolumeManager.hxx Diff File
mod - src/SelectBasics/SelectBasics_SensitiveEntity.cdl Diff File
mod - src/SelectBasics/SelectBasics_SensitiveEntity.cxx Diff File
mod - src/SelectBasics/SelectBasics_SensitiveEntity.lxx Diff File
rm - src/SelectBasics/SelectBasics_SortAlgo.cdl Diff File
rm - src/SelectBasics/SelectBasics_SortAlgo.cxx Diff File
mod - src/SelectMgr/FILES Diff File
mod - src/SelectMgr/SelectMgr.cdl Diff File
add - src/SelectMgr/SelectMgr_BaseFrustum.cxx Diff File
add - src/SelectMgr/SelectMgr_BaseFrustum.hxx Diff File
mod - src/SelectMgr/SelectMgr_EntityOwner.cxx Diff File
add - src/SelectMgr/SelectMgr_Frustum.hxx Diff File
add - src/SelectMgr/SelectMgr_Frustum.lxx Diff File
add - src/SelectMgr/SelectMgr_FrustumBuilder.cxx Diff File
add - src/SelectMgr/SelectMgr_FrustumBuilder.hxx Diff File
add - src/SelectMgr/SelectMgr_RectangularFrustum.cxx Diff File
add - src/SelectMgr/SelectMgr_RectangularFrustum.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObject.cdl Diff File
mod - src/SelectMgr/SelectMgr_SelectableObject.cxx Diff File
add - src/SelectMgr/SelectMgr_SelectableObjectSet.cxx Diff File
add - src/SelectMgr/SelectMgr_SelectableObjectSet.hxx Diff File
add - src/SelectMgr/SelectMgr_SelectingVolumeManager.cxx Diff File
add - src/SelectMgr/SelectMgr_SelectingVolumeManager.hxx Diff File
rm - src/SelectMgr/SelectMgr_Selection.cdl Diff File
mod - src/SelectMgr/SelectMgr_Selection.cxx Diff File
add - src/SelectMgr/SelectMgr_Selection.hxx Diff File
mod - src/SelectMgr/SelectMgr_Selection.lxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.cdl Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.cxx Diff File
add - src/SelectMgr/SelectMgr_SensitiveEntity.cxx Diff File
add - src/SelectMgr/SelectMgr_SensitiveEntity.hxx Diff File
add - src/SelectMgr/SelectMgr_SensitiveEntitySet.cxx Diff File
add - src/SelectMgr/SelectMgr_SensitiveEntitySet.hxx Diff File
add - src/SelectMgr/SelectMgr_TriangularFrustum.cxx Diff File
add - src/SelectMgr/SelectMgr_TriangularFrustum.hxx Diff File
add - src/SelectMgr/SelectMgr_TriangularFrustumSet.cxx Diff File
add - src/SelectMgr/SelectMgr_TriangularFrustumSet.hxx Diff File
add - src/SelectMgr/SelectMgr_VectorTypes.hxx Diff File
rm - src/SelectMgr/SelectMgr_ViewerSelector.cdl Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx Diff File
add - src/SelectMgr/SelectMgr_ViewerSelector.hxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.lxx Diff File
add - src/StdSelect/FILES Diff File
mod - src/StdSelect/StdSelect.cdl Diff File
mod - src/StdSelect/StdSelect.cxx Diff File
mod - src/StdSelect/StdSelect_BRepSelectionTool.cdl Diff File
mod - src/StdSelect/StdSelect_BRepSelectionTool.cxx Diff File
rm - src/StdSelect/StdSelect_ViewerSelector3d.cdl Diff File
mod - src/StdSelect/StdSelect_ViewerSelector3d.cxx Diff File
add - src/StdSelect/StdSelect_ViewerSelector3d.hxx Diff File
mod - src/StdSelect/StdSelect_ViewerSelector3d.lxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx Diff File
mod - src/ViewerTest/ViewerTest_RelationCommands.cxx Diff File
mod - src/Voxel/Voxel_Prs.cdl Diff File
mod - tests/bugs/modalg_2/bug22781_2 Diff File
mod - tests/bugs/modalg_2/bug22781_4 Diff File
mod - tests/bugs/vis/bug23012 Diff File
mod - tests/bugs/vis/bug23539_2 Diff File
mod - tests/bugs/vis/bug23649_3 Diff File
mod - tests/bugs/vis/bug23649_4 Diff File
mod - tests/bugs/vis/bug24389 Diff File
mod - tests/bugs/vis/bug24564 Diff File
mod - tests/bugs/vis/bug24569 Diff File
add - tests/bugs/vis/bug24623_1 Diff File
add - tests/bugs/vis/bug24623_2 Diff File
add - tests/bugs/vis/bug24623_3 Diff File
add - tests/bugs/vis/bug24623_4 Diff File
mod - tests/bugs/vis/bug25098 Diff File
mod - tests/bugs/vis/bug25532 Diff File
mod - tests/bugs/vis/bug25552 Diff File
mod - tests/bugs/vis/bug25723 Diff File
mod - tests/bugs/vis/bug25935 Diff File
mod - tests/v3d/edge_face/E2 Diff File
mod - tests/v3d/edge_face/E9 Diff File
mod - tests/v3d/edge_face/J4 Diff File
mod - tests/v3d/edge_face/K2 Diff File
mod - tests/v3d/edge_face/O6 Diff File
mod - tests/v3d/edge_face/P4 Diff File
mod - tests/v3d/edge_solid/E2 Diff File
mod - tests/v3d/edge_solid/E9 Diff File
mod - tests/v3d/edge_solid/J4 Diff File
mod - tests/v3d/edge_solid/K2 Diff File
mod - tests/v3d/edge_solid/O6 Diff File
mod - tests/v3d/edge_solid/P4 Diff File
mod - tests/v3d/vertex_edge/E7 Diff File
mod - tests/v3d/vertex_edge/F1 Diff File
mod - tests/v3d/vertex_edge/J9 Diff File
mod - tests/v3d/vertex_edge/K1 Diff File
mod - tests/v3d/vertex_edge/K3 Diff File
mod - tests/v3d/vertex_face/E7 Diff File
mod - tests/v3d/vertex_face/F1 Diff File
mod - tests/v3d/vertex_face/J9 Diff File
mod - tests/v3d/vertex_face/K1 Diff File
mod - tests/v3d/vertex_face/K3 Diff File
mod - tests/v3d/vertex_solid/E7 Diff File
mod - tests/v3d/vertex_solid/F1 Diff File
mod - tests/v3d/vertex_solid/J9 Diff File
mod - tests/v3d/vertex_solid/K3 Diff File
mod - tests/v3d/vertex_wire/E7 Diff File
mod - tests/v3d/vertex_wire/F1 Diff File
mod - tests/v3d/vertex_wire/J9 Diff File
mod - tests/v3d/vertex_wire/K3 Diff File
mod - tests/v3d/wire/E9 Diff File
mod - tests/v3d/wire/F1 Diff File
mod - tests/v3d/wire/F2 Diff File
mod - tests/v3d/wire_solid/E2 Diff File
mod - tests/v3d/wire_solid/E7 Diff File
mod - tests/v3d/wire_solid/F1 Diff File
mod - tests/v3d/wire_solid/J4 Diff File
mod - tests/v3d/wire_solid/J9 Diff File
mod - tests/v3d/wire_solid/K3 Diff File