mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0032886: Visualization, V3d_View - introduce interface for creating a subview
V3d_View/Graphic3d_CView pair has been extended to define subview within the other V3d_View instance. The initialization is done in form of V3d_View::SetWindow() taking parent V3d_View instance on input. Subview definition includes dimensions defined as a fraction of a parent view and offset from a corner. This scheme allows splitting window into several subviews automatically occupying entire viewport, like splitting window into two vertial subviews (100%x50% + 100%x50%), three horizontal subviews (33%x100% + 30%x100% + 30%x100%), 1 + 2 stacked subviews (50%x100% + 50%x50% + 50%x50%), as well as thumbnail-alike subviews displayed on top of another larger view. OpenGl_View::Redraw() blits content of subviews into the window within immediate redraw step. AIS_ViewController::FlushViewEvents() has been extended to re-calculate mouse input into local subview coordinates. AIS_ViewController::handleViewRedraw() first redraws subviews and then parent views. Introduced new callback AIS_ViewController::OnSubviewChanged() to switch input focus to another subview on mouse click, implemented by ViewerTest_EventManager (has to be done at application level). vinit command has been extended with parameters -subview and -parent to create a subview. In addition, view dimension arguments now can be defined as a fraction of screen size instead of pixels.
This commit is contained in:
@@ -79,6 +79,9 @@ public:
|
||||
myPickPntArgVec[2] = theArgZ;
|
||||
}
|
||||
|
||||
//! Update mouse scroll event.
|
||||
Standard_EXPORT virtual bool UpdateMouseScroll (const Aspect_ScrollDelta& theDelta) Standard_OVERRIDE;
|
||||
|
||||
//! Handle mouse button click event.
|
||||
Standard_EXPORT virtual bool UpdateMouseClick (const Graphic3d_Vec2i& thePoint,
|
||||
Aspect_VKeyMouse theButton,
|
||||
@@ -116,6 +119,12 @@ public:
|
||||
//! Handle KeyPress event.
|
||||
Standard_EXPORT void ProcessKeyPress (Aspect_VKey theKey);
|
||||
|
||||
//! Callback called on Selection of another (sub)view.
|
||||
//! This method is expected to be called from rendering thread.
|
||||
Standard_EXPORT virtual void OnSubviewChanged (const Handle(AIS_InteractiveContext)& theCtx,
|
||||
const Handle(V3d_View)& theOldView,
|
||||
const Handle(V3d_View)& theNewView) Standard_OVERRIDE;
|
||||
|
||||
protected:
|
||||
|
||||
//! Register hot-keys for specified Action.
|
||||
|
Reference in New Issue
Block a user