0032419: Coding Rules - revert Overlaps() methods to SelectBasics_SelectingVolumeManager as deprecated aliases Deprecated Overlaps() methods have been moved from subclass SelectMgr_SelectingVolumeManager to the base class SelectBasics_SelectingVolumeManager, so that they are actually accessible within Select3D_SensitiveEntity::Matches() implementations. Several methods have been marked as pure virtual in the base interface. Second SelectMgr_BaseIntersector::OverlapsPolygon() has been dropped from virtual interface as useless (trivially replaceable).
0031313: Foundation Classes - Dump improvement for classes - Provide DumpJson for geometrical, ocaf and visualization classes; - Change depth parameter of DumpJson (constant is not obligate here) - Introduce a new macro for transient objects to be called as the first row in DumpJson: OCCT_DUMP_TRANSIENT_CLASS_BEGIN. We need not put the class name in the macro, using get_type_name of Standard_Transient for it. - change implementation of OCCT_DUMP_CLASS_BEGIN and OCCT_DUMP_TRANSIENT_CLASS_BEGIN. It is not an sentry more and it does not create a new hierarchy level. It appends a new row into the output stream: "className": <className> - OCCT_DUMP_* does not require semicolon - class header is included first in source files of TDataStd, TDocStd, TCAFDoc
0030687: Visualization - remove redundant interfaces SelectBasics_EntityOwner and SelectBasics_SensitiveEntity SelectBasics_EntityOwner has been merged into SelectMgr_EntityOwner. Unused property SelectMgr_EntityOwner::ResetLocation() has been removed. SelectBasics package has been moved from TKService to TKV3d. SelectBasics_SensitiveEntity has been merged into Select3D_SensitiveEntity.
0030058: Visualization, Select3D_SensitivePrimitiveArray - the selection is not fast enough Select3D_SensitiveSet::Matches() has been improved to check if BVH node is fully included by selection volume and pass this information to overlapsElement()/elementIsInside() interfaces to avoid expensive partial overlapping checks for individual elements. Select3D_SensitivePrimitiveArray implements this new interface to improve partial overlapping performance. Select3D_SensitivePrimitiveArray::Matches() now handles rectangle selection for sub-elements when Elements map is defined. Added missing const to SelectMgr_BaseFrustum::Overlaps() methods. AIS_PointCloud has been extended with new selection mode for collecting selected nodes Draw Harness command vdrawparray has been extended with an option -shape allowing to create a triangulation from tessellated shape.
0029938: Visualization - SelectMgr_ViewerSelector::PickedPoint() should return point lying on an object Extended SelectBasics_PickResult structure by myObjPickedPnt field, which contained the value of the 3d point on the selected object. Changed all Overlaps methods. Parameter theDepth replaced on object of the structure SelectBasics_PickResult. This approach will be able to add new fields to SelectBasics_PickResult structure without big changes in modules which contained Overlaps method.
0026146: Visualization, Select3D_ISensitivePointSet - eliminate crash when clearing selections [only with TBB] Remove classes Select3D_ISensitivePointSet and Select3D_BoundarySensitivePointSet; use Select3D_SensitivePoly directly for boundary selection. Make last argument in Select3D_SensitiveFace non-default to ensure that value is always explicitly specified by the caller. Inherit SelectMgr_FrustumBuilder from Standard_Transient to use normal Handle instead of NCollection_Handle. Add test case bugs/vis/bug26146.
0026147: Visualization - restore the ability to pick only fully included objects in rectangular selection 2 modes of rectangular selection are available: inclusion-only and overlap-allowing; The modes can be switched using method AllowOverlapDetection from StdSelect_ViewerSelector3d; BVH for sensitive entities now builds if there is more than max number of leafs in collection; Added option -allowoverlap to command vselect; Interactive rectangular selection in Draw is now available in 2 modes: - if the user starts selection from upper corners, only fully included objects will be selected; - if the user starts selection from lower corners, both partially and fully overlapped objects will be selected.
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.