0033551: Visualization - Add new transform persistence mode to force orthographic projection on object. The new transform persistence mode, with flag `Graphic3d_TMF_OrthoPers`, can be combined (bitwise OR operation) with the other persistence modes (2D, Trihedron or Zoom/Rotate Persistence) to make objects be rendered with orthographic projection when it is on a view with perspective projection. If the view already uses orthographic projection, there will be no difference. This feature was implemented to fix ViewCube being distorted when view with perspective projection changes size.
0033551: Visualization - Add new transform persistence mode to force orthographic projection on object. The new transform persistence mode, with flag `Graphic3d_TMF_OrthoPers`, can be combined (bitwise OR operation) with the other persistence modes (2D, Trihedron or Zoom/Rotate Persistence) to make objects be rendered with orthographic projection when it is on a view with perspective projection. If the view already uses orthographic projection, there will be no difference. This feature was implemented to fix ViewCube being distorted when view with perspective projection changes size.
0027848: Visualization - sensitivity of lines is too high Improved objects sorting by depth. The sensitivity calculation for the manipulator has been changed. Now the sensitivity of the elements of the manipulator depends on its size. Also fixed the problem of erroneous selection of unfilled circles (SelectMgr_Frustum<N>::hasCircleOverlap() function). Test case vselect/bugs/bug27848 added.
0032978: Visualization - AIS_ViewController::PickPoint() includes objects invisible in current View SelectMgr_ViewerSelector::TraverseSensitives() now takes into account object's view affinity. AIS_InteractiveContext::moveTo() - dropped code SelectMgr_AndOrFilter::SetDisabledObjects() as filtering is now done by selector itself. ViewAffinity property has been moved to PrsMgr_PresentableObject for simplicity. Removed redundant map Graphic3d_CView::HiddenObjects().
0032725: Visualization - Graphic3d_Structure::SetDisplayPriority() should use public enumeration Graphic3d_DisplayPriority Added new enumeration Graphic3d_DisplayPriority. Graphic3d_Layer now defines a fixed-length array of priorities. Properties Graphic3d_CStructure::Id, Priority, PreviousPriority have been wrapped into methods.
0031220: Visualization - remove internal field of viewer selector in context - Removed myMainSel field from AIS_InteractiveContext and obtained this value from mgrSelector. - Moved SelectMgr_ViewerSelector3d implementation into SelectMgr_ViewerSelector to get rid of redundant separation and extra DownCast's. - Declared SelectMgr_ViewerSelector3d as deprecated.
0027919: Visualization - support multiple transformation persistence groups within single presentation Added transform persistence property to Graphic3d_Group and Select3D_SensitiveEntity. SelectMgr_ViewerSelector, Graphic3d_Layer and OpenGl_Structure have been updated to process per-group transform persistence within picking, ZFit and rendering. Added zoomable state to Prs3d_ArrowAspect supported by PrsDim_Dimension. Added gp_GTrsf::SetMat4(), opposite to gp_GTrsf::GetMat4().
0032390: Visualization, SelectMgr_FrustumBuilder - use camera instead of duplicated methods Fix incorrect value of axis intersection with segment inside of SelectMgr_AxisIntersector::raySegmentDistance(). Move camera definition to base intersector (it is not possible to set it for axis intersector, is is not applicable). Add method Graphic3d_Camera::SetIdentityOrientation() to set camera parameters to make current orientation matrix identity one. Remove all matrices from selection intersectors and frustum builder and use camera instead of them. Fix missed axis tests in vselect grid.
0032387: Visualization - use interface of ray-picking for selection/highlighting for XR pose Fixed regression of SelectMgr_ViewerSelector::SetPixelTolerance(). Removed redundant myToUpdateTolerance flag. SelectMgr_AxisIntersector::raySegmentDistance() - fixed usage of SquareModulus() instead of Modulus(). SelectMgr_ViewerSelector::TraverseSensitives() now skips both BVHSubset_2dPersistent and BVHSubset_3dPersistent relying on Camera. AIS_ViewController::handleXRMoveTo() now uses interface for picking by Axis explicitly instead of emulating axis by point picking.
0032365: Visualization - refactoring of viewer selector Add SelectMgr_BaseIntersector class as base intersector that can have any geometry not only frustum. Remove cached static array of selecting volumes from selecting volume manager. Keep only one the latest active selection volume. Change initialization interface of active volume frustum inside of selecting volume manager: Init*SelectingVolume(), set required parameters, BuildSelectingVolume(). Mark existing BuildSelectingVolume() methods as deprecated. Use SelectMgr_SelectionType instead of SelectBasics_SelectingVolumeManager::SelectionType (the last one is marked as deprecated). Add interface GetViewRayDirection() to selecting volume manager to get view ray direction (instead of computation it as vector from near to far point). Add interface IsScalableActiveVolume() to selecting volume manager to check possibility of scaling of current active selecting volume.
0030640: Visualization, Graphic3d_Camera - add option creating Projection matrix with [0,1] depth range Added new property Graphic3d_Camera::IsZeroToOneDepth() and OpenGl_Caps::useZeroToOneDepth for activating [0,1] depth range instead of [-1,1] range using glClipControl() within OpenGL 4.5+.
0032056: Coding Rules - remove package MMgt and other types deprecated since OCCT 7.2.0 Removed functionality deprecated since OCCT 7.1.0: - 0027834 built-in iterator in class SelectMgr_ViewerSelector; - 0027900 obsolete constructor of V3d_Viewer class; - 0027816 obsolete clipping plane setters V3d_View/PrsMgr_PresentableObject:SetClipPlanes(); - 0027860 obsolete transformation persistence methods from class PrsMgr_PresentableObject; - 0027756 obsolete methods Prs3d_Text::Draw(); - 0024393 obsolete enum Graphic3d_ZLayerSetting; - 0025180 obsolete method Graphic3d_Structure::Transform(). Removed functionality deprecated since OCCT 7.2.0: - 0028832 obsolete class MMgt_TShared; - 0026937 obsolete property Standard_Failure::Caught(); - 0028799 obsolete types defined within Quantity package; - 0028441 obsolete nested enum Image_PixMap::ImgFormat; - 0025695 obsolete method PrsMgr_PresentationManager::Unhighlight(); - 0028205 obsolete class MeshVS_ColorHasher; - 0027958 obsolete methods from Prs3d_DatumAspect class; - 0025695 obsolete class Graphic3d_HighlightStyle; - 0027954 obsolete BRepOffsetAPI_MakeOffsetShape,BRepOffsetAPI_MakeThickSolid constructors.
0031987: Visualization - Slow rectangular selection on models with big number of sensitives SelectMgr_SensitiveEntitySet now stores a map of registered owners with a counter of registered entities. SelectMgr_ViewerSelector::traverseObject() now reads the number of sensitive entities for specific owner from SelectMgr_SensitiveEntitySet instead of re-computing it every time.
0031701: Visualization, SelectMgr_ViewerSelector - make depth tolerance configurable SelectMgr_ViewerSelector::SetDepthTolerance() - added property defining depth tolerance type and value. Default value remains the same (SelectMgr_TypeOfDepthTolerance_SensitivityFactor), while new values (SelectMgr_TypeOfDepthTolerance_Uniform, SelectMgr_TypeOfDepthTolerance_UniformPixels) change behavior. AIS_Manipulator - removed obsolete suggestion to use AIS_InteractiveContext::SetPickClosest() for issue fixed long time ago by #0027797.
0031757: Visualization - Prebuild BVH for Select3D_SensitiveEntity in separate threads - Added a new mode in SelectMgr_ViewerSelector for computing BVH for Select3D_SensitiveEntity in background which can be activated via method SelectMgr_ViewerSelector::SetToPrebuildBVH(). Default behavior has not been changed. - New class SelectMgr_BVHThreadPool manages background processing of BVH building queue. - Added Select3D_SensitiveEntity::ToBuildBVH() method that checks if BVH (if it used) is in invalidated state. Defined this method for all standard classes inherited from Select3D_SensitiveEntity.