Open CASCADE Technology 7.8.0
Public Member Functions
AIS_ViewController Class Reference

Auxiliary structure for handling viewer events between GUI and Rendering threads. More...

#include <AIS_ViewController.hxx>

Inheritance diagram for AIS_ViewController:
Inheritance graph
[legend]

Public Member Functions

 AIS_ViewController ()
 Empty constructor.
 
virtual ~AIS_ViewController ()
 Destructor.
 
const AIS_ViewInputBufferInputBuffer (AIS_ViewInputBufferType theType) const
 Return input buffer.
 
AIS_ViewInputBufferChangeInputBuffer (AIS_ViewInputBufferType theType)
 Return input buffer.
 
const Handle< AIS_AnimationCamera > & ViewAnimation () const
 Return view animation; empty (but not NULL) animation by default.
 
void SetViewAnimation (const Handle< AIS_AnimationCamera > &theAnimation)
 Set view animation to be handled within handleViewRedraw().
 
void AbortViewAnimation ()
 Interrupt active view animation.
 
const Handle< AIS_Animation > & ObjectsAnimation () const
 Return objects animation; empty (but not NULL) animation by default.
 
void SetObjectsAnimation (const Handle< AIS_Animation > &theAnimation)
 Set object animation to be handled within handleViewRedraw().
 
bool ToPauseObjectsAnimation () const
 Return TRUE if object animation should be paused on mouse click; FALSE by default.
 
void SetPauseObjectsAnimation (bool theToPause)
 Set if object animation should be paused on mouse click.
 
bool IsContinuousRedraw () const
 Return TRUE if continuous redrawing is enabled; FALSE by default. This option would request a next viewer frame to be completely redrawn right after current frame is finished.
 
void SetContinuousRedraw (bool theToEnable)
 Enable or disable continuous updates.
 
global parameters
AIS_RotationMode RotationMode () const
 Return camera rotation mode, AIS_RotationMode_BndBoxActive by default.
 
void SetRotationMode (AIS_RotationMode theMode)
 Set camera rotation mode.
 
AIS_NavigationMode NavigationMode () const
 Return camera navigation mode; AIS_NavigationMode_Orbit by default.
 
void SetNavigationMode (AIS_NavigationMode theMode)
 Set camera navigation mode.
 
float MouseAcceleration () const
 Return mouse input acceleration ratio in First Person mode; 1.0 by default.
 
void SetMouseAcceleration (float theRatio)
 Set mouse input acceleration ratio.
 
float OrbitAcceleration () const
 Return orbit rotation acceleration ratio; 1.0 by default.
 
void SetOrbitAcceleration (float theRatio)
 Set orbit rotation acceleration ratio.
 
bool ToShowPanAnchorPoint () const
 Return TRUE if panning anchor point within perspective projection should be displayed in 3D Viewer; TRUE by default.
 
void SetShowPanAnchorPoint (bool theToShow)
 Set if panning anchor point within perspective projection should be displayed in 3D Viewer.
 
bool ToShowRotateCenter () const
 Return TRUE if rotation point should be displayed in 3D Viewer; TRUE by default.
 
void SetShowRotateCenter (bool theToShow)
 Set if rotation point should be displayed in 3D Viewer.
 
bool ToLockOrbitZUp () const
 Return TRUE if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up; FALSE by default.
 
void SetLockOrbitZUp (bool theToForceUp)
 Set if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up.
 
bool ToAllowTouchZRotation () const
 Return TRUE if z-rotation via two-touches gesture is enabled; FALSE by default.
 
void SetAllowTouchZRotation (bool theToEnable)
 Set if z-rotation via two-touches gesture is enabled.
 
bool ToAllowRotation () const
 Return TRUE if camera rotation is allowed; TRUE by default.
 
void SetAllowRotation (bool theToEnable)
 Set if camera rotation is allowed.
 
bool ToAllowPanning () const
 Return TRUE if panning is allowed; TRUE by default.
 
void SetAllowPanning (bool theToEnable)
 Set if panning is allowed.
 
bool ToAllowZooming () const
 Return TRUE if zooming is allowed; TRUE by default.
 
void SetAllowZooming (bool theToEnable)
 Set if zooming is allowed.
 
bool ToAllowZFocus () const
 Return TRUE if ZFocus change is allowed; TRUE by default.
 
void SetAllowZFocus (bool theToEnable)
 Set if ZFocus change is allowed.
 
bool ToAllowHighlight () const
 Return TRUE if dynamic highlight on mouse move is allowed; TRUE by default.
 
void SetAllowHighlight (bool theToEnable)
 Set if dragging object is allowed.
 
bool ToAllowDragging () const
 Return TRUE if dragging object is allowed; TRUE by default.
 
void SetAllowDragging (bool theToEnable)
 Set if dynamic highlight on mouse move is allowed.
 
bool ToStickToRayOnZoom () const
 Return TRUE if picked point should be projected to picking ray on zooming at point; TRUE by default.
 
void SetStickToRayOnZoom (bool theToEnable)
 Set if picked point should be projected to picking ray on zooming at point.
 
bool ToStickToRayOnRotation () const
 Return TRUE if picked point should be projected to picking ray on rotating around point; TRUE by default.
 
void SetStickToRayOnRotation (bool theToEnable)
 Set if picked point should be projected to picking ray on rotating around point.
 
bool ToInvertPitch () const
 Return TRUE if pitch direction should be inverted while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown; FALSE by default.
 
void SetInvertPitch (bool theToInvert)
 Set flag inverting pitch direction.
 
float WalkSpeedAbsolute () const
 Return normal walking speed, in m/s; 1.5 by default.
 
void SetWalkSpeedAbsolute (float theSpeed)
 Set normal walking speed, in m/s; 1.5 by default.
 
float WalkSpeedRelative () const
 Return walking speed relative to scene bounding box; 0.1 by default.
 
void SetWalkSpeedRelative (float theFactor)
 Set walking speed relative to scene bounding box.
 
float ThrustSpeed () const
 Return active thrust value; 0.0f by default.
 
void SetThrustSpeed (float theSpeed)
 Set active thrust value.
 
bool HasPreviousMoveTo () const
 Return TRUE if previous position of MoveTo has been defined.
 
const Graphic3d_Vec2iPreviousMoveTo () const
 Return previous position of MoveTo event in 3D viewer.
 
void ResetPreviousMoveTo ()
 Reset previous position of MoveTo.
 
bool ToDisplayXRAuxDevices () const
 Return TRUE to display auxiliary tracked XR devices (like tracking stations).
 
void SetDisplayXRAuxDevices (bool theToDisplay)
 Set if auxiliary tracked XR devices should be displayed.
 
bool ToDisplayXRHands () const
 Return TRUE to display XR hand controllers.
 
void SetDisplayXRHands (bool theToDisplay)
 Set if tracked XR hand controllers should be displayed.
 
keyboard input
virtual void KeyDown (Aspect_VKey theKey, double theTime, double thePressure=1.0) override
 Press key. Default implementation updates internal cache.
 
virtual void KeyUp (Aspect_VKey theKey, double theTime) override
 Release key. Default implementation updates internal cache.
 
virtual void KeyFromAxis (Aspect_VKey theNegative, Aspect_VKey thePositive, double theTime, double thePressure) override
 Simulate key up/down events from axis value. Default implementation updates internal cache.
 
AIS_WalkDelta FetchNavigationKeys (Standard_Real theCrouchRatio, Standard_Real theRunRatio)
 Fetch active navigation actions.
 
const Aspect_VKeySetKeys () const
 Return keyboard state.
 
Aspect_VKeySetChangeKeys ()
 Return keyboard state.
 
mouse input
const AIS_MouseGestureMapMouseGestureMap () const
 Return map defining mouse gestures.
 
AIS_MouseGestureMapChangeMouseGestureMap ()
 Return map defining mouse gestures.
 
const AIS_MouseSelectionSchemeMapMouseSelectionSchemes () const
 Return map defining mouse selection schemes.
 
AIS_MouseSelectionSchemeMapChangeMouseSelectionSchemes ()
 Return map defining mouse gestures.
 
double MouseDoubleClickInterval () const
 Return double click interval in seconds; 0.4 by default.
 
void SetMouseDoubleClickInterval (double theSeconds)
 Set double click interval in seconds.
 
virtual void SelectInViewer (const Graphic3d_Vec2i &thePnt, const AIS_SelectionScheme theScheme=AIS_SelectionScheme_Replace)
 Perform selection in 3D viewer. This method is expected to be called from UI thread.
 
virtual void SelectInViewer (const NCollection_Sequence< Graphic3d_Vec2i > &thePnts, const AIS_SelectionScheme theScheme=AIS_SelectionScheme_Replace)
 Perform selection in 3D viewer. This method is expected to be called from UI thread.
 
virtual void UpdateRubberBand (const Graphic3d_Vec2i &thePntFrom, const Graphic3d_Vec2i &thePntTo)
 Update rectangle selection tool. This method is expected to be called from UI thread.
 
virtual void UpdatePolySelection (const Graphic3d_Vec2i &thePnt, bool theToAppend)
 Update polygonal selection tool. This method is expected to be called from UI thread.
 
virtual bool UpdateZoom (const Aspect_ScrollDelta &theDelta)
 Update zoom event (e.g. from mouse scroll). This method is expected to be called from UI thread.
 
virtual bool UpdateZRotation (double theAngle)
 Update Z rotation event.
 
virtual bool UpdateMouseScroll (const Aspect_ScrollDelta &theDelta) override
 Update mouse scroll event; redirects to UpdateZoom by default. This method is expected to be called from UI thread.
 
virtual bool UpdateMouseButtons (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButtons, Aspect_VKeyFlags theModifiers, bool theIsEmulated) override
 Handle mouse button press/release event. This method is expected to be called from UI thread.
 
virtual bool UpdateMousePosition (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButtons, Aspect_VKeyFlags theModifiers, bool theIsEmulated) override
 Handle mouse cursor movement event. This method is expected to be called from UI thread.
 
virtual bool UpdateMouseClick (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButton, Aspect_VKeyFlags theModifiers, bool theIsDoubleClick)
 Handle mouse button click event (emulated by UpdateMouseButtons() while releasing single button). Note that as this method is called by UpdateMouseButtons(), it should be executed from UI thread. Default implementation redirects to SelectInViewer(). This method is expected to be called from UI thread.
 
bool PressMouseButton (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButton, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse button press event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().
 
bool ReleaseMouseButton (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButton, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse button release event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().
 
Aspect_VKeyMouse PressedMouseButtons () const
 Return currently pressed mouse buttons.
 
Aspect_VKeyFlags LastMouseFlags () const
 Return active key modifiers passed with last mouse event.
 
const Graphic3d_Vec2iLastMousePosition () const
 Return last mouse position.
 
multi-touch input
float TouchToleranceScale () const
 Return scale factor for adjusting tolerances for starting multi-touch gestures; 1.0 by default This scale factor is expected to be computed from touch screen resolution.
 
void SetTouchToleranceScale (float theTolerance)
 Set scale factor for adjusting tolerances for starting multi-touch gestures.
 
virtual void AddTouchPoint (Standard_Size theId, const Graphic3d_Vec2d &thePnt, Standard_Boolean theClearBefore=false) override
 Add touch point with the given ID. This method is expected to be called from UI thread.
 
virtual bool RemoveTouchPoint (Standard_Size theId, Standard_Boolean theClearSelectPnts=false) override
 Remove touch point with the given ID. This method is expected to be called from UI thread.
 
virtual void UpdateTouchPoint (Standard_Size theId, const Graphic3d_Vec2d &thePnt) override
 Update touch point with the given ID. If point with specified ID was not registered before, it will be added. This method is expected to be called from UI thread.
 
bool HasTouchPoints () const
 Return TRUE if touches map is not empty.
 
3d mouse input
virtual bool Update3dMouse (const WNT_HIDSpaceMouse &theEvent) override
 Process 3d mouse input event (redirects to translation, rotation and keys).
 
- Public Member Functions inherited from Aspect_WindowInputListener
virtual ~Aspect_WindowInputListener ()
 DEFINE_STANDARD_ALLOC.
 
double EventTime () const
 Return event time (e.g. current time).
 
const Aspect_VKeySetKeys () const
 Return keyboard state.
 
Aspect_VKeySetChangeKeys ()
 Return keyboard state.
 
bool PressMouseButton (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButton, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse button press event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().
 
bool ReleaseMouseButton (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButton, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse button release event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().
 
Aspect_VKeyMouse PressedMouseButtons () const
 Return currently pressed mouse buttons.
 
Aspect_VKeyFlags LastMouseFlags () const
 Return active key modifiers passed with last mouse event.
 
const Graphic3d_Vec2iLastMousePosition () const
 Return last mouse position.
 
bool HasTouchPoints () const
 Return TRUE if touches map is not empty.
 
const Aspect_TouchMapTouchPoints () const
 Return map of active touches.
 
float Get3dMouseTranslationScale () const
 Return acceleration ratio for translation event; 2.0 by default.
 
void Set3dMouseTranslationScale (float theScale)
 Set acceleration ratio for translation event.
 
float Get3dMouseRotationScale () const
 Return acceleration ratio for rotation event; 4.0 by default.
 
void Set3dMouseRotationScale (float theScale)
 Set acceleration ratio for rotation event.
 
bool To3dMousePreciseInput () const
 Return quadric acceleration flag; TRUE by default.
 
void Set3dMousePreciseInput (bool theIsQuadric)
 Set quadric acceleration flag.
 
const NCollection_Vec3< bool > & Get3dMouseIsNoRotate () const
 Return 3d mouse rotation axes (tilt/roll/spin) ignore flag; (FALSE, FALSE, FALSE) by default.
 
NCollection_Vec3< bool > & Change3dMouseIsNoRotate ()
 Return 3d mouse rotation axes (tilt/roll/spin) ignore flag; (FALSE, FALSE, FALSE) by default.
 
const NCollection_Vec3< bool > & Get3dMouseToReverse () const
 Return 3d mouse rotation axes (tilt/roll/spin) reverse flag; (TRUE, FALSE, FALSE) by default.
 
NCollection_Vec3< bool > & Change3dMouseToReverse ()
 Return 3d mouse rotation axes (tilt/roll/spin) reverse flag; (TRUE, FALSE, FALSE) by default.
 
virtual bool update3dMouseTranslation (const WNT_HIDSpaceMouse &theEvent)
 Process 3d mouse input translation event.
 
virtual bool update3dMouseRotation (const WNT_HIDSpaceMouse &theEvent)
 Process 3d mouse input rotation event.
 
virtual bool update3dMouseKeys (const WNT_HIDSpaceMouse &theEvent)
 Process 3d mouse input keys event.
 

Protected Attributes

XR input variables
NCollection_Array1< Handle< AIS_XRTrackedDevice > > myXRPrsDevices
 array of XR tracked devices presentations
 
Quantity_Color myXRLaserTeleColor
 color of teleport laser
 
Quantity_Color myXRLaserPickColor
 color of picking laser
 
Aspect_XRTrackedDeviceRole myXRLastTeleportHand
 active hand for teleport
 
Aspect_XRTrackedDeviceRole myXRLastPickingHand
 active hand for picking objects
 
Aspect_XRHapticActionData myXRTeleportHaptic
 vibration on picking teleport destination
 
Aspect_XRHapticActionData myXRPickingHaptic
 vibration on dynamic highlighting
 
Aspect_XRHapticActionData myXRSelectHaptic
 vibration on selection
 
Standard_Real myXRLastPickDepthLeft
 last picking depth for left hand
 
Standard_Real myXRLastPickDepthRight
 last picking depth for right hand
 
Standard_Real myXRTurnAngle
 discrete turn angle for XR trackpad
 
Standard_Boolean myToDisplayXRAuxDevices
 flag to display auxiliary tracked XR devices
 
Standard_Boolean myToDisplayXRHands
 flag to display XR hands
 
mouse input variables
Standard_Real myMouseClickThreshold
 mouse click threshold in pixels; 3 by default
 
Standard_Real myMouseDoubleClickInt
 double click interval in seconds; 0.4 by default
 
Standard_ShortReal myScrollZoomRatio
 distance ratio for mapping mouse scroll event to zoom; 15.0 by default
 
AIS_MouseGestureMap myMouseGestureMap
 map defining mouse gestures
 
AIS_MouseGestureMap myMouseGestureMapDrag
 secondary map defining mouse gestures for dragging
 
AIS_MouseGesture myMouseActiveGesture
 initiated mouse gesture (by pressing mouse button)
 
AIS_MouseSelectionSchemeMap myMouseSelectionSchemes
 map defining selection schemes bound to mouse + modifiers
 
Standard_Boolean myMouseActiveIdleRotation
 flag indicating view idle rotation state
 
Graphic3d_Vec2i myMousePressPoint
 mouse position where active gesture was been initiated
 
Graphic3d_Vec2i myMouseProgressPoint
 gesture progress
 
OSD_Timer myMouseClickTimer
 timer for handling double-click event
 
Standard_Integer myMouseClickCounter
 counter for handling double-click event
 
Standard_Integer myMouseSingleButton
 index of mouse button pressed alone (>0)
 
Standard_Boolean myMouseStopDragOnUnclick
 queue stop dragging even with at next mouse unclick
 
multi-touch input variables
Standard_ShortReal myTouchToleranceScale
 tolerance scale factor; 1.0 by default
 
Standard_ShortReal myTouchClickThresholdPx
 touch click threshold in pixels; 3 by default
 
Standard_ShortReal myTouchRotationThresholdPx
 threshold for starting one-touch rotation gesture in pixels; 6 by default
 
Standard_ShortReal myTouchZRotationThreshold
 threshold for starting two-touch Z-rotation gesture in radians; 2 degrees by default
 
Standard_ShortReal myTouchPanThresholdPx
 threshold for starting two-touch panning gesture in pixels; 4 by default
 
Standard_ShortReal myTouchZoomThresholdPx
 threshold for starting two-touch zoom (pitch) gesture in pixels; 6 by default
 
Standard_ShortReal myTouchZoomRatio
 distance ratio for mapping two-touch zoom (pitch) gesture from pixels to zoom; 0.13 by default
 
Standard_ShortReal myTouchDraggingThresholdPx
 distance for starting one-touch dragging gesture in pixels; 6 by default
 
Aspect_Touch myTouchClick
 single touch position for handling clicks
 
OSD_Timer myTouchDoubleTapTimer
 timer for handling double tap
 
Graphic3d_Vec2d myStartPanCoord
 touch coordinates at the moment of starting panning gesture
 
Graphic3d_Vec2d myStartRotCoord
 touch coordinates at the moment of starting rotating gesture
 
Standard_Integer myNbTouchesLast
 number of touches within previous gesture flush to track gesture changes
 
Standard_Boolean myUpdateStartPointPan
 flag indicating that new anchor point should be picked for starting panning gesture
 
Standard_Boolean myUpdateStartPointRot
 flag indicating that new gravity point should be picked for starting rotation gesture
 
Standard_Boolean myUpdateStartPointZRot
 flag indicating that new gravity point should be picked for starting Z-rotation gesture
 
rotation/panning transient state variables
Handle< AIS_PointmyAnchorPointPrs1
 anchor point presentation (Graphic3d_ZLayerId_Top)
 
Handle< AIS_PointmyAnchorPointPrs2
 anchor point presentation (Graphic3d_ZLayerId_Topmost)
 
gp_Pnt myPanPnt3d
 active panning anchor point
 
gp_Pnt myRotatePnt3d
 active rotation center of gravity
 
gp_Dir myCamStartOpUp
 camera Up direction at the beginning of rotation
 
gp_Dir myCamStartOpDir
 camera View direction at the beginning of rotation
 
gp_Pnt myCamStartOpEye
 camera Eye position at the beginning of rotation
 
gp_Pnt myCamStartOpCenter
 camera Center position at the beginning of rotation
 
gp_Vec myCamStartOpToCenter
 vector from rotation gravity point to camera Center at the beginning of rotation
 
gp_Vec myCamStartOpToEye
 vector from rotation gravity point to camera Eye at the beginning of rotation
 
Graphic3d_Vec3d myRotateStartYawPitchRoll
 camera yaw pitch roll at the beginning of rotation
 
- Protected Attributes inherited from Aspect_WindowInputListener
Aspect_VKeySet myKeys
 keyboard state
 
Graphic3d_Vec2i myMousePositionLast
 last mouse position
 
Aspect_VKeyMouse myMousePressed
 active mouse buttons
 
Aspect_VKeyFlags myMouseModifiers
 active key modifiers passed with last mouse event
 
Aspect_TouchMap myTouchPoints
 map of active touches
 
bool my3dMouseButtonState [32]
 cached button state
 
NCollection_Vec3< boolmy3dMouseNoRotate
 ignore 3d mouse rotation axes
 
NCollection_Vec3< boolmy3dMouseToReverse
 reverse 3d mouse rotation axes
 
float my3dMouseAccelTrans
 acceleration ratio for translation event
 
float my3dMouseAccelRotate
 acceleration ratio for rotation event
 
bool my3dMouseIsQuadric
 quadric acceleration
 
OSD_Timer myEventTimer
 timer for timestamping events
 

resize events

AIS_ViewInputBuffer myUI
 buffer for UI thread
 
AIS_ViewInputBuffer myGL
 buffer for rendering thread
 
Standard_Real myLastEventsTime
 last fetched events timer value for computing delta/progress
 
Standard_Boolean myToAskNextFrame
 flag indicating that another frame should be drawn right after this one
 
Standard_Boolean myIsContinuousRedraw
 continuous redrawing (without immediate rendering optimization)
 
Standard_Real myMinCamDistance
 minimal camera distance for zoom operation
 
AIS_RotationMode myRotationMode
 rotation mode
 
AIS_NavigationMode myNavigationMode
 navigation mode (orbit rotation / first person)
 
Standard_ShortReal myMouseAccel
 mouse input acceleration ratio in First Person mode
 
Standard_ShortReal myOrbitAccel
 Orbit rotation acceleration ratio.
 
Standard_Boolean myToShowPanAnchorPoint
 option displaying panning anchor point
 
Standard_Boolean myToShowRotateCenter
 option displaying rotation center point
 
Standard_Boolean myToLockOrbitZUp
 force camera up orientation within AIS_NavigationMode_Orbit rotation mode
 
Standard_Boolean myToInvertPitch
 flag inverting pitch direction while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown
 
Standard_Boolean myToAllowTouchZRotation
 enable z-rotation two-touches gesture; FALSE by default
 
Standard_Boolean myToAllowRotation
 enable rotation; TRUE by default
 
Standard_Boolean myToAllowPanning
 enable panning; TRUE by default
 
Standard_Boolean myToAllowZooming
 enable zooming; TRUE by default
 
Standard_Boolean myToAllowZFocus
 enable ZFocus change; TRUE by default
 
Standard_Boolean myToAllowHighlight
 enable dynamic highlight on mouse move; TRUE by default
 
Standard_Boolean myToAllowDragging
 enable dragging object; TRUE by default
 
Standard_Boolean myToStickToRayOnZoom
 project picked point to ray while zooming at point, TRUE by default
 
Standard_Boolean myToStickToRayOnRotation
 project picked point to ray while rotating around point; TRUE by default
 
Standard_ShortReal myWalkSpeedAbsolute
 normal walking speed, in m/s; 1.5 by default
 
Standard_ShortReal myWalkSpeedRelative
 walking speed relative to scene bounding box; 0.1 by default
 
Standard_ShortReal myThrustSpeed
 active thrust value
 
Standard_Boolean myHasThrust
 flag indicating active thrust
 
Handle< AIS_AnimationCameramyViewAnimation
 view animation
 
Handle< AIS_AnimationmyObjAnimation
 objects animation
 
Standard_Boolean myToPauseObjAnimation
 flag to pause objects animation on mouse click; FALSE by default
 
Handle< AIS_RubberBandmyRubberBand
 Rubber-band presentation.
 
Handle< SelectMgr_EntityOwnermyDragOwner
 detected owner of currently dragged object
 
Handle< AIS_InteractiveObjectmyDragObject
 currently dragged object
 
Graphic3d_Vec2i myPrevMoveTo
 previous position of MoveTo event in 3D viewer
 
Standard_Boolean myHasHlrOnBeforeRotation
 flag for restoring Computed mode after rotation
 
virtual void ProcessExpose () override
 Handle expose event (window content has been invalidation and should be redrawn). Default implementation does nothing.
 
virtual void ProcessConfigure (bool theIsResized) override
 Handle window resize event. Default implementation does nothing.
 
virtual void ProcessInput () override
 Handle window input event immediately. Default implementation does nothing - input events are accumulated in internal buffer until explicit FlushViewEvents() call.
 
virtual void ProcessFocus (bool theIsActivated) override
 Handle focus event. Default implementation resets cached input state (pressed keys).
 
virtual void ProcessClose () override
 Handle window close event. Default implementation does nothing.
 
virtual void ResetViewInput ()
 Reset input state (pressed keys, mouse buttons, etc.) e.g. on window focus loss. This method is expected to be called from UI thread.
 
virtual void UpdateViewOrientation (V3d_TypeOfOrientation theOrientation, bool theToFitAll)
 Reset view orientation. This method is expected to be called from UI thread.
 
virtual void FlushViewEvents (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, Standard_Boolean theToHandle=Standard_False)
 Update buffer for rendering thread. This method is expected to be called within synchronization barrier between GUI and Rendering threads (e.g. GUI thread should be locked beforehand to avoid data races).
 
virtual void HandleViewEvents (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Process events within rendering thread.
 
virtual void OnSelectionChanged (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Callback called by handleMoveTo() on Selection in 3D Viewer. This method is expected to be called from rendering thread.
 
virtual void OnObjectDragged (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, AIS_DragAction theAction)
 Callback called by handleMoveTo() on dragging object in 3D Viewer. This method is expected to be called from rendering thread.
 
virtual void OnSubviewChanged (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theOldView, const Handle< V3d_View > &theNewView)
 Callback called by HandleViewEvents() on Selection of another (sub)view. This method is expected to be called from rendering thread.
 
virtual bool PickPoint (gp_Pnt &thePnt, const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const Graphic3d_Vec2i &theCursor, bool theToStickToPickRay)
 Pick closest point under mouse cursor. This method is expected to be called from rendering thread.
 
virtual bool PickAxis (gp_Pnt &theTopPnt, const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const gp_Ax1 &theAxis)
 Pick closest point by axis. This method is expected to be called from rendering thread.
 
virtual gp_Pnt GravityPoint (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Compute rotation gravity center point depending on rotation mode. This method is expected to be called from rendering thread.
 
virtual void FitAllAuto (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Modify view camera to fit all objects. Default implementation fits either all visible and all selected objects (swapped on each call).
 
virtual void handleViewOrientationKeys (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Handle hot-keys defining new camera orientation (Aspect_VKey_ViewTop and similar keys). Default implementation starts an animated transaction from the current to the target camera orientation, when specific action key was pressed. This method is expected to be called from rendering thread.
 
virtual AIS_WalkDelta handleNavigationKeys (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform navigation (Aspect_VKey_NavForward and similar keys). This method is expected to be called from rendering thread.
 
virtual void handleCameraActions (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const AIS_WalkDelta &theWalk)
 Perform immediate camera actions (rotate/zoom/pan) on gesture progress. This method is expected to be called from rendering thread.
 
virtual void handleMoveTo (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform moveto/selection/dragging. This method is expected to be called from rendering thread.
 
bool toAskNextFrame () const
 Return TRUE if another frame should be drawn right after this one.
 
void setAskNextFrame (bool theToDraw=true)
 Set if another frame should be drawn right after this one.
 
bool hasPanningAnchorPoint () const
 Return if panning anchor point has been defined.
 
const gp_PntpanningAnchorPoint () const
 Return active panning anchor point.
 
void setPanningAnchorPoint (const gp_Pnt &thePnt)
 Set active panning anchor point.
 
virtual void handlePanning (const Handle< V3d_View > &theView)
 Handle panning event myGL.Panning.
 
virtual void handleZRotate (const Handle< V3d_View > &theView)
 Handle Z rotation event myGL.ZRotate.
 
double MinZoomDistance () const
 Return minimal camera distance for zoom operation.
 
void SetMinZoomDistance (double theDist)
 Set minimal camera distance for zoom operation.
 
virtual void handleZoom (const Handle< V3d_View > &theView, const Aspect_ScrollDelta &theParams, const gp_Pnt *thePnt)
 Handle zoom event myGL.ZoomActions. This method is expected to be called from rendering thread.
 
virtual void handleZFocusScroll (const Handle< V3d_View > &theView, const Aspect_ScrollDelta &theParams)
 Handle ZScroll event myGL.ZoomActions. This method is expected to be called from rendering thread.
 
virtual void handleOrbitRotation (const Handle< V3d_View > &theView, const gp_Pnt &thePnt, bool theToLockZUp)
 Handle orbital rotation events myGL.OrbitRotation.
 
virtual void handleViewRotation (const Handle< V3d_View > &theView, double theYawExtra, double thePitchExtra, double theRoll, bool theToRestartOnIncrement)
 Handle view direction rotation events myGL.ViewRotation. This method is expected to be called from rendering thread.
 
virtual void handleViewRedraw (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Handle view redraw. This method is expected to be called from rendering thread.
 
virtual void handleXRInput (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const AIS_WalkDelta &theWalk)
 Perform XR input. This method is expected to be called from rendering thread.
 
virtual void handleXRTurnPad (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Handle trackpad view turn action.
 
virtual void handleXRTeleport (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Handle trackpad teleportation action.
 
virtual void handleXRPicking (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Handle picking on trigger click.
 
virtual void handleXRHighlight (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform dynamic highlighting for active hand.
 
virtual void handleXRPresentations (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Display auxiliary XR presentations.
 
virtual Standard_Integer handleXRMoveTo (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const gp_Trsf &thePose, const Standard_Boolean theToHighlight)
 Perform picking with/without dynamic highlighting for XR pose.
 
double EventTime () const
 Return event time (e.g. current time).
 
virtual void flushBuffers (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Flush buffers.
 
virtual void flushGestures (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Flush touch gestures.
 
void updateEventsTime (double &thePrevTime, double &theCurrTime)
 Return current and previously fetched event times. This callback is intended to compute delta between sequentially processed events.
 
virtual void handleSelectionPick (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform selection via mouse click. This method is expected to be called from rendering thread.
 
virtual void handleDynamicHighlight (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform dynamic highlight on mouse move. This method is expected to be called from rendering thread.
 
virtual void handleSelectionPoly (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Perform rubber-band selection. This method is expected to be called from rendering thread.
 
virtual void contextLazyMoveTo (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const Graphic3d_Vec2i &thePnt)
 Lazy AIS_InteractiveContext::MoveTo() with myPrevMoveTo check.
 

Additional Inherited Members

- Protected Member Functions inherited from Aspect_WindowInputListener
 Aspect_WindowInputListener ()
 Empty constructor.
 

Detailed Description

Auxiliary structure for handling viewer events between GUI and Rendering threads.

Class implements the following features:

Constructor & Destructor Documentation

◆ AIS_ViewController()

AIS_ViewController::AIS_ViewController ( )

Empty constructor.

◆ ~AIS_ViewController()

virtual AIS_ViewController::~AIS_ViewController ( )
virtual

Destructor.

Member Function Documentation

◆ AbortViewAnimation()

void AIS_ViewController::AbortViewAnimation ( )

Interrupt active view animation.

◆ AddTouchPoint()

virtual void AIS_ViewController::AddTouchPoint ( Standard_Size  theId,
const Graphic3d_Vec2d thePnt,
Standard_Boolean  theClearBefore = false 
)
overridevirtual

Add touch point with the given ID. This method is expected to be called from UI thread.

Parameters
theIdtouch unique identifier
thePnttouch coordinates
theClearBeforeif TRUE previously registered touches will be removed

Reimplemented from Aspect_WindowInputListener.

◆ ChangeInputBuffer()

AIS_ViewInputBuffer & AIS_ViewController::ChangeInputBuffer ( AIS_ViewInputBufferType  theType)
inline

Return input buffer.

◆ ChangeKeys()

Aspect_VKeySet & Aspect_WindowInputListener::ChangeKeys ( )
inline

Return keyboard state.

◆ ChangeMouseGestureMap()

AIS_MouseGestureMap & AIS_ViewController::ChangeMouseGestureMap ( )
inline

Return map defining mouse gestures.

◆ ChangeMouseSelectionSchemes()

AIS_MouseSelectionSchemeMap & AIS_ViewController::ChangeMouseSelectionSchemes ( )
inline

Return map defining mouse gestures.

◆ contextLazyMoveTo()

virtual void AIS_ViewController::contextLazyMoveTo ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const Graphic3d_Vec2i thePnt 
)
protectedvirtual

Lazy AIS_InteractiveContext::MoveTo() with myPrevMoveTo check.

◆ EventTime()

double Aspect_WindowInputListener::EventTime ( ) const
inline

Return event time (e.g. current time).

◆ FetchNavigationKeys()

AIS_WalkDelta AIS_ViewController::FetchNavigationKeys ( Standard_Real  theCrouchRatio,
Standard_Real  theRunRatio 
)

Fetch active navigation actions.

◆ FitAllAuto()

virtual void AIS_ViewController::FitAllAuto ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Modify view camera to fit all objects. Default implementation fits either all visible and all selected objects (swapped on each call).

◆ flushBuffers()

virtual void AIS_ViewController::flushBuffers ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
protectedvirtual

Flush buffers.

◆ flushGestures()

virtual void AIS_ViewController::flushGestures ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
protectedvirtual

Flush touch gestures.

◆ FlushViewEvents()

virtual void AIS_ViewController::FlushViewEvents ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
Standard_Boolean  theToHandle = Standard_False 
)
virtual

Update buffer for rendering thread. This method is expected to be called within synchronization barrier between GUI and Rendering threads (e.g. GUI thread should be locked beforehand to avoid data races).

Parameters
theCtxinteractive context
theViewactive view
theToHandleif TRUE, the HandleViewEvents() will be called

◆ GravityPoint()

virtual gp_Pnt AIS_ViewController::GravityPoint ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Compute rotation gravity center point depending on rotation mode. This method is expected to be called from rendering thread.

◆ handleCameraActions()

virtual void AIS_ViewController::handleCameraActions ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const AIS_WalkDelta theWalk 
)
virtual

Perform immediate camera actions (rotate/zoom/pan) on gesture progress. This method is expected to be called from rendering thread.

◆ handleDynamicHighlight()

virtual void AIS_ViewController::handleDynamicHighlight ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
protectedvirtual

Perform dynamic highlight on mouse move. This method is expected to be called from rendering thread.

◆ handleMoveTo()

virtual void AIS_ViewController::handleMoveTo ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Perform moveto/selection/dragging. This method is expected to be called from rendering thread.

◆ handleNavigationKeys()

virtual AIS_WalkDelta AIS_ViewController::handleNavigationKeys ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Perform navigation (Aspect_VKey_NavForward and similar keys). This method is expected to be called from rendering thread.

◆ handleOrbitRotation()

virtual void AIS_ViewController::handleOrbitRotation ( const Handle< V3d_View > &  theView,
const gp_Pnt thePnt,
bool  theToLockZUp 
)
virtual

Handle orbital rotation events myGL.OrbitRotation.

Parameters
theViewview to modify
thePnt3D point to rotate around
theToLockZUpamend camera to exclude roll angle (put camera Up vector to plane containing global Z and view direction)

◆ handlePanning()

virtual void AIS_ViewController::handlePanning ( const Handle< V3d_View > &  theView)
virtual

Handle panning event myGL.Panning.

◆ handleSelectionPick()

virtual void AIS_ViewController::handleSelectionPick ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
protectedvirtual

Perform selection via mouse click. This method is expected to be called from rendering thread.

◆ handleSelectionPoly()

virtual void AIS_ViewController::handleSelectionPoly ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
protectedvirtual

Perform rubber-band selection. This method is expected to be called from rendering thread.

◆ HandleViewEvents()

virtual void AIS_ViewController::HandleViewEvents ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Process events within rendering thread.

◆ handleViewOrientationKeys()

virtual void AIS_ViewController::handleViewOrientationKeys ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Handle hot-keys defining new camera orientation (Aspect_VKey_ViewTop and similar keys). Default implementation starts an animated transaction from the current to the target camera orientation, when specific action key was pressed. This method is expected to be called from rendering thread.

◆ handleViewRedraw()

virtual void AIS_ViewController::handleViewRedraw ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Handle view redraw. This method is expected to be called from rendering thread.

Reimplemented in ViewerTest_EventManager.

◆ handleViewRotation()

virtual void AIS_ViewController::handleViewRotation ( const Handle< V3d_View > &  theView,
double  theYawExtra,
double  thePitchExtra,
double  theRoll,
bool  theToRestartOnIncrement 
)
virtual

Handle view direction rotation events myGL.ViewRotation. This method is expected to be called from rendering thread.

Parameters
theViewcamera to modify
theYawExtraextra yaw increment
thePitchExtraextra pitch increment
theRollroll value
theToRestartOnIncrementflag indicating flight mode

◆ handleXRHighlight()

virtual void AIS_ViewController::handleXRHighlight ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Perform dynamic highlighting for active hand.

◆ handleXRInput()

virtual void AIS_ViewController::handleXRInput ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const AIS_WalkDelta theWalk 
)
virtual

Perform XR input. This method is expected to be called from rendering thread.

◆ handleXRMoveTo()

virtual Standard_Integer AIS_ViewController::handleXRMoveTo ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const gp_Trsf thePose,
const Standard_Boolean  theToHighlight 
)
virtual

Perform picking with/without dynamic highlighting for XR pose.

◆ handleXRPicking()

virtual void AIS_ViewController::handleXRPicking ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Handle picking on trigger click.

◆ handleXRPresentations()

virtual void AIS_ViewController::handleXRPresentations ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Display auxiliary XR presentations.

◆ handleXRTeleport()

virtual void AIS_ViewController::handleXRTeleport ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Handle trackpad teleportation action.

◆ handleXRTurnPad()

virtual void AIS_ViewController::handleXRTurnPad ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Handle trackpad view turn action.

◆ handleZFocusScroll()

virtual void AIS_ViewController::handleZFocusScroll ( const Handle< V3d_View > &  theView,
const Aspect_ScrollDelta theParams 
)
virtual

Handle ZScroll event myGL.ZoomActions. This method is expected to be called from rendering thread.

◆ handleZoom()

virtual void AIS_ViewController::handleZoom ( const Handle< V3d_View > &  theView,
const Aspect_ScrollDelta theParams,
const gp_Pnt thePnt 
)
virtual

Handle zoom event myGL.ZoomActions. This method is expected to be called from rendering thread.

◆ handleZRotate()

virtual void AIS_ViewController::handleZRotate ( const Handle< V3d_View > &  theView)
virtual

Handle Z rotation event myGL.ZRotate.

◆ hasPanningAnchorPoint()

bool AIS_ViewController::hasPanningAnchorPoint ( ) const
inline

Return if panning anchor point has been defined.

◆ HasPreviousMoveTo()

bool AIS_ViewController::HasPreviousMoveTo ( ) const
inline

Return TRUE if previous position of MoveTo has been defined.

◆ HasTouchPoints()

bool Aspect_WindowInputListener::HasTouchPoints ( ) const
inline

Return TRUE if touches map is not empty.

◆ InputBuffer()

const AIS_ViewInputBuffer & AIS_ViewController::InputBuffer ( AIS_ViewInputBufferType  theType) const
inline

Return input buffer.

◆ IsContinuousRedraw()

bool AIS_ViewController::IsContinuousRedraw ( ) const
inline

Return TRUE if continuous redrawing is enabled; FALSE by default. This option would request a next viewer frame to be completely redrawn right after current frame is finished.

◆ KeyDown()

virtual void AIS_ViewController::KeyDown ( Aspect_VKey  theKey,
double  theTime,
double  thePressure = 1.0 
)
overridevirtual

Press key. Default implementation updates internal cache.

Parameters
theKeykey pressed
theTimeevent timestamp

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ KeyFromAxis()

virtual void AIS_ViewController::KeyFromAxis ( Aspect_VKey  theNegative,
Aspect_VKey  thePositive,
double  theTime,
double  thePressure 
)
overridevirtual

Simulate key up/down events from axis value. Default implementation updates internal cache.

Implements Aspect_WindowInputListener.

◆ Keys()

const Aspect_VKeySet & Aspect_WindowInputListener::Keys ( ) const
inline

Return keyboard state.

◆ KeyUp()

virtual void AIS_ViewController::KeyUp ( Aspect_VKey  theKey,
double  theTime 
)
overridevirtual

Release key. Default implementation updates internal cache.

Parameters
theKeykey pressed
theTimeevent timestamp

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ LastMouseFlags()

Aspect_VKeyFlags Aspect_WindowInputListener::LastMouseFlags ( ) const
inline

Return active key modifiers passed with last mouse event.

◆ LastMousePosition()

const Graphic3d_Vec2i & Aspect_WindowInputListener::LastMousePosition ( ) const
inline

Return last mouse position.

◆ MinZoomDistance()

double AIS_ViewController::MinZoomDistance ( ) const
inline

Return minimal camera distance for zoom operation.

◆ MouseAcceleration()

float AIS_ViewController::MouseAcceleration ( ) const
inline

Return mouse input acceleration ratio in First Person mode; 1.0 by default.

◆ MouseDoubleClickInterval()

double AIS_ViewController::MouseDoubleClickInterval ( ) const
inline

Return double click interval in seconds; 0.4 by default.

◆ MouseGestureMap()

const AIS_MouseGestureMap & AIS_ViewController::MouseGestureMap ( ) const
inline

Return map defining mouse gestures.

◆ MouseSelectionSchemes()

const AIS_MouseSelectionSchemeMap & AIS_ViewController::MouseSelectionSchemes ( ) const
inline

Return map defining mouse selection schemes.

◆ NavigationMode()

AIS_NavigationMode AIS_ViewController::NavigationMode ( ) const
inline

Return camera navigation mode; AIS_NavigationMode_Orbit by default.

◆ ObjectsAnimation()

const Handle< AIS_Animation > & AIS_ViewController::ObjectsAnimation ( ) const
inline

Return objects animation; empty (but not NULL) animation by default.

◆ OnObjectDragged()

virtual void AIS_ViewController::OnObjectDragged ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
AIS_DragAction  theAction 
)
virtual

Callback called by handleMoveTo() on dragging object in 3D Viewer. This method is expected to be called from rendering thread.

◆ OnSelectionChanged()

virtual void AIS_ViewController::OnSelectionChanged ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView 
)
virtual

Callback called by handleMoveTo() on Selection in 3D Viewer. This method is expected to be called from rendering thread.

◆ OnSubviewChanged()

virtual void AIS_ViewController::OnSubviewChanged ( const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theOldView,
const Handle< V3d_View > &  theNewView 
)
virtual

Callback called by HandleViewEvents() on Selection of another (sub)view. This method is expected to be called from rendering thread.

Reimplemented in ViewerTest_EventManager.

◆ OrbitAcceleration()

float AIS_ViewController::OrbitAcceleration ( ) const
inline

Return orbit rotation acceleration ratio; 1.0 by default.

◆ panningAnchorPoint()

const gp_Pnt & AIS_ViewController::panningAnchorPoint ( ) const
inline

Return active panning anchor point.

◆ PickAxis()

virtual bool AIS_ViewController::PickAxis ( gp_Pnt theTopPnt,
const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const gp_Ax1 theAxis 
)
virtual

Pick closest point by axis. This method is expected to be called from rendering thread.

Parameters
theTopPnt[out] result point
theCtx[in] interactive context
theView[in] active view
theAxis[in] selection axis
Returns
TRUE if result has been found

◆ PickPoint()

virtual bool AIS_ViewController::PickPoint ( gp_Pnt thePnt,
const Handle< AIS_InteractiveContext > &  theCtx,
const Handle< V3d_View > &  theView,
const Graphic3d_Vec2i theCursor,
bool  theToStickToPickRay 
)
virtual

Pick closest point under mouse cursor. This method is expected to be called from rendering thread.

Parameters
thePnt[out] result point
theCtx[in] interactive context
theView[in] active view
theCursor[in] mouse cursor
theToStickToPickRay[in] when TRUE, the result point will lie on picking ray
Returns
TRUE if result has been found

◆ PressedMouseButtons()

Aspect_VKeyMouse Aspect_WindowInputListener::PressedMouseButtons ( ) const
inline

Return currently pressed mouse buttons.

◆ PressMouseButton()

bool Aspect_WindowInputListener::PressMouseButton ( const Graphic3d_Vec2i thePoint,
Aspect_VKeyMouse  theButton,
Aspect_VKeyFlags  theModifiers,
bool  theIsEmulated 
)
inline

Handle mouse button press event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().

Parameters
thePointmouse cursor position
theButtonpressed button
theModifierskey modifiers
theIsEmulatedif TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen
Returns
TRUE if window content should be redrawn

◆ PreviousMoveTo()

const Graphic3d_Vec2i & AIS_ViewController::PreviousMoveTo ( ) const
inline

Return previous position of MoveTo event in 3D viewer.

◆ ProcessClose()

virtual void AIS_ViewController::ProcessClose ( )
inlineoverridevirtual

Handle window close event. Default implementation does nothing.

Implements Aspect_WindowInputListener.

◆ ProcessConfigure()

virtual void AIS_ViewController::ProcessConfigure ( bool  theIsResized)
inlineoverridevirtual

Handle window resize event. Default implementation does nothing.

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ ProcessExpose()

virtual void AIS_ViewController::ProcessExpose ( )
inlineoverridevirtual

Handle expose event (window content has been invalidation and should be redrawn). Default implementation does nothing.

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ ProcessFocus()

virtual void AIS_ViewController::ProcessFocus ( bool  theIsActivated)
inlineoverridevirtual

Handle focus event. Default implementation resets cached input state (pressed keys).

Implements Aspect_WindowInputListener.

◆ ProcessInput()

virtual void AIS_ViewController::ProcessInput ( )
inlineoverridevirtual

Handle window input event immediately. Default implementation does nothing - input events are accumulated in internal buffer until explicit FlushViewEvents() call.

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ ReleaseMouseButton()

bool Aspect_WindowInputListener::ReleaseMouseButton ( const Graphic3d_Vec2i thePoint,
Aspect_VKeyMouse  theButton,
Aspect_VKeyFlags  theModifiers,
bool  theIsEmulated 
)
inline

Handle mouse button release event. This method is expected to be called from UI thread. Default implementation redirects to UpdateMousePosition().

Parameters
thePointmouse cursor position
theButtonreleased button
theModifierskey modifiers
theIsEmulatedif TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen
Returns
TRUE if window content should be redrawn

◆ RemoveTouchPoint()

virtual bool AIS_ViewController::RemoveTouchPoint ( Standard_Size  theId,
Standard_Boolean  theClearSelectPnts = false 
)
overridevirtual

Remove touch point with the given ID. This method is expected to be called from UI thread.

Parameters
theIdtouch unique identifier
theClearSelectPntsif TRUE will initiate clearing of selection points
Returns
TRUE if point has been removed

Reimplemented from Aspect_WindowInputListener.

◆ ResetPreviousMoveTo()

void AIS_ViewController::ResetPreviousMoveTo ( )
inline

Reset previous position of MoveTo.

◆ ResetViewInput()

virtual void AIS_ViewController::ResetViewInput ( )
virtual

Reset input state (pressed keys, mouse buttons, etc.) e.g. on window focus loss. This method is expected to be called from UI thread.

◆ RotationMode()

AIS_RotationMode AIS_ViewController::RotationMode ( ) const
inline

Return camera rotation mode, AIS_RotationMode_BndBoxActive by default.

◆ SelectInViewer() [1/2]

virtual void AIS_ViewController::SelectInViewer ( const Graphic3d_Vec2i thePnt,
const AIS_SelectionScheme  theScheme = AIS_SelectionScheme_Replace 
)
virtual

Perform selection in 3D viewer. This method is expected to be called from UI thread.

Parameters
thePntpicking point
theSchemeselection scheme

◆ SelectInViewer() [2/2]

virtual void AIS_ViewController::SelectInViewer ( const NCollection_Sequence< Graphic3d_Vec2i > &  thePnts,
const AIS_SelectionScheme  theScheme = AIS_SelectionScheme_Replace 
)
virtual

Perform selection in 3D viewer. This method is expected to be called from UI thread.

Parameters
thePntspicking point
theSchemeselection scheme

◆ SetAllowDragging()

void AIS_ViewController::SetAllowDragging ( bool  theToEnable)
inline

Set if dynamic highlight on mouse move is allowed.

◆ SetAllowHighlight()

void AIS_ViewController::SetAllowHighlight ( bool  theToEnable)
inline

Set if dragging object is allowed.

◆ SetAllowPanning()

void AIS_ViewController::SetAllowPanning ( bool  theToEnable)
inline

Set if panning is allowed.

◆ SetAllowRotation()

void AIS_ViewController::SetAllowRotation ( bool  theToEnable)
inline

Set if camera rotation is allowed.

◆ SetAllowTouchZRotation()

void AIS_ViewController::SetAllowTouchZRotation ( bool  theToEnable)
inline

Set if z-rotation via two-touches gesture is enabled.

◆ SetAllowZFocus()

void AIS_ViewController::SetAllowZFocus ( bool  theToEnable)
inline

Set if ZFocus change is allowed.

◆ SetAllowZooming()

void AIS_ViewController::SetAllowZooming ( bool  theToEnable)
inline

Set if zooming is allowed.

◆ setAskNextFrame()

void AIS_ViewController::setAskNextFrame ( bool  theToDraw = true)
inline

Set if another frame should be drawn right after this one.

◆ SetContinuousRedraw()

void AIS_ViewController::SetContinuousRedraw ( bool  theToEnable)
inline

Enable or disable continuous updates.

◆ SetDisplayXRAuxDevices()

void AIS_ViewController::SetDisplayXRAuxDevices ( bool  theToDisplay)
inline

Set if auxiliary tracked XR devices should be displayed.

◆ SetDisplayXRHands()

void AIS_ViewController::SetDisplayXRHands ( bool  theToDisplay)
inline

Set if tracked XR hand controllers should be displayed.

◆ SetInvertPitch()

void AIS_ViewController::SetInvertPitch ( bool  theToInvert)
inline

Set flag inverting pitch direction.

◆ SetLockOrbitZUp()

void AIS_ViewController::SetLockOrbitZUp ( bool  theToForceUp)
inline

Set if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up.

◆ SetMinZoomDistance()

void AIS_ViewController::SetMinZoomDistance ( double  theDist)
inline

Set minimal camera distance for zoom operation.

◆ SetMouseAcceleration()

void AIS_ViewController::SetMouseAcceleration ( float  theRatio)
inline

Set mouse input acceleration ratio.

◆ SetMouseDoubleClickInterval()

void AIS_ViewController::SetMouseDoubleClickInterval ( double  theSeconds)
inline

Set double click interval in seconds.

◆ SetNavigationMode()

void AIS_ViewController::SetNavigationMode ( AIS_NavigationMode  theMode)

Set camera navigation mode.

◆ SetObjectsAnimation()

void AIS_ViewController::SetObjectsAnimation ( const Handle< AIS_Animation > &  theAnimation)
inline

Set object animation to be handled within handleViewRedraw().

◆ SetOrbitAcceleration()

void AIS_ViewController::SetOrbitAcceleration ( float  theRatio)
inline

Set orbit rotation acceleration ratio.

◆ setPanningAnchorPoint()

void AIS_ViewController::setPanningAnchorPoint ( const gp_Pnt thePnt)
inline

Set active panning anchor point.

◆ SetPauseObjectsAnimation()

void AIS_ViewController::SetPauseObjectsAnimation ( bool  theToPause)
inline

Set if object animation should be paused on mouse click.

◆ SetRotationMode()

void AIS_ViewController::SetRotationMode ( AIS_RotationMode  theMode)
inline

Set camera rotation mode.

◆ SetShowPanAnchorPoint()

void AIS_ViewController::SetShowPanAnchorPoint ( bool  theToShow)
inline

Set if panning anchor point within perspective projection should be displayed in 3D Viewer.

◆ SetShowRotateCenter()

void AIS_ViewController::SetShowRotateCenter ( bool  theToShow)
inline

Set if rotation point should be displayed in 3D Viewer.

◆ SetStickToRayOnRotation()

void AIS_ViewController::SetStickToRayOnRotation ( bool  theToEnable)
inline

Set if picked point should be projected to picking ray on rotating around point.

◆ SetStickToRayOnZoom()

void AIS_ViewController::SetStickToRayOnZoom ( bool  theToEnable)
inline

Set if picked point should be projected to picking ray on zooming at point.

◆ SetThrustSpeed()

void AIS_ViewController::SetThrustSpeed ( float  theSpeed)
inline

Set active thrust value.

◆ SetTouchToleranceScale()

void AIS_ViewController::SetTouchToleranceScale ( float  theTolerance)
inline

Set scale factor for adjusting tolerances for starting multi-touch gestures.

◆ SetViewAnimation()

void AIS_ViewController::SetViewAnimation ( const Handle< AIS_AnimationCamera > &  theAnimation)
inline

Set view animation to be handled within handleViewRedraw().

◆ SetWalkSpeedAbsolute()

void AIS_ViewController::SetWalkSpeedAbsolute ( float  theSpeed)
inline

Set normal walking speed, in m/s; 1.5 by default.

◆ SetWalkSpeedRelative()

void AIS_ViewController::SetWalkSpeedRelative ( float  theFactor)
inline

Set walking speed relative to scene bounding box.

◆ ThrustSpeed()

float AIS_ViewController::ThrustSpeed ( ) const
inline

Return active thrust value; 0.0f by default.

◆ ToAllowDragging()

bool AIS_ViewController::ToAllowDragging ( ) const
inline

Return TRUE if dragging object is allowed; TRUE by default.

◆ ToAllowHighlight()

bool AIS_ViewController::ToAllowHighlight ( ) const
inline

Return TRUE if dynamic highlight on mouse move is allowed; TRUE by default.

◆ ToAllowPanning()

bool AIS_ViewController::ToAllowPanning ( ) const
inline

Return TRUE if panning is allowed; TRUE by default.

◆ ToAllowRotation()

bool AIS_ViewController::ToAllowRotation ( ) const
inline

Return TRUE if camera rotation is allowed; TRUE by default.

◆ ToAllowTouchZRotation()

bool AIS_ViewController::ToAllowTouchZRotation ( ) const
inline

Return TRUE if z-rotation via two-touches gesture is enabled; FALSE by default.

◆ ToAllowZFocus()

bool AIS_ViewController::ToAllowZFocus ( ) const
inline

Return TRUE if ZFocus change is allowed; TRUE by default.

◆ ToAllowZooming()

bool AIS_ViewController::ToAllowZooming ( ) const
inline

Return TRUE if zooming is allowed; TRUE by default.

◆ toAskNextFrame()

bool AIS_ViewController::toAskNextFrame ( ) const
inline

Return TRUE if another frame should be drawn right after this one.

◆ ToDisplayXRAuxDevices()

bool AIS_ViewController::ToDisplayXRAuxDevices ( ) const
inline

Return TRUE to display auxiliary tracked XR devices (like tracking stations).

◆ ToDisplayXRHands()

bool AIS_ViewController::ToDisplayXRHands ( ) const
inline

Return TRUE to display XR hand controllers.

◆ ToInvertPitch()

bool AIS_ViewController::ToInvertPitch ( ) const
inline

Return TRUE if pitch direction should be inverted while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown; FALSE by default.

◆ ToLockOrbitZUp()

bool AIS_ViewController::ToLockOrbitZUp ( ) const
inline

Return TRUE if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up; FALSE by default.

◆ ToPauseObjectsAnimation()

bool AIS_ViewController::ToPauseObjectsAnimation ( ) const
inline

Return TRUE if object animation should be paused on mouse click; FALSE by default.

◆ ToShowPanAnchorPoint()

bool AIS_ViewController::ToShowPanAnchorPoint ( ) const
inline

Return TRUE if panning anchor point within perspective projection should be displayed in 3D Viewer; TRUE by default.

◆ ToShowRotateCenter()

bool AIS_ViewController::ToShowRotateCenter ( ) const
inline

Return TRUE if rotation point should be displayed in 3D Viewer; TRUE by default.

◆ ToStickToRayOnRotation()

bool AIS_ViewController::ToStickToRayOnRotation ( ) const
inline

Return TRUE if picked point should be projected to picking ray on rotating around point; TRUE by default.

◆ ToStickToRayOnZoom()

bool AIS_ViewController::ToStickToRayOnZoom ( ) const
inline

Return TRUE if picked point should be projected to picking ray on zooming at point; TRUE by default.

◆ TouchToleranceScale()

float AIS_ViewController::TouchToleranceScale ( ) const
inline

Return scale factor for adjusting tolerances for starting multi-touch gestures; 1.0 by default This scale factor is expected to be computed from touch screen resolution.

◆ Update3dMouse()

virtual bool AIS_ViewController::Update3dMouse ( const WNT_HIDSpaceMouse theEvent)
overridevirtual

Process 3d mouse input event (redirects to translation, rotation and keys).

Implements Aspect_WindowInputListener.

◆ updateEventsTime()

void AIS_ViewController::updateEventsTime ( double thePrevTime,
double theCurrTime 
)
inlineprotected

Return current and previously fetched event times. This callback is intended to compute delta between sequentially processed events.

Parameters
thePrevTime[out] events time fetched previous time by this method
theCurrTime[out] actual events time

◆ UpdateMouseButtons()

virtual bool AIS_ViewController::UpdateMouseButtons ( const Graphic3d_Vec2i thePoint,
Aspect_VKeyMouse  theButtons,
Aspect_VKeyFlags  theModifiers,
bool  theIsEmulated 
)
overridevirtual

Handle mouse button press/release event. This method is expected to be called from UI thread.

Parameters
thePointmouse cursor position
theButtonspressed buttons
theModifierskey modifiers
theIsEmulatedif TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen
Returns
TRUE if View should be redrawn

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ UpdateMouseClick()

virtual bool AIS_ViewController::UpdateMouseClick ( const Graphic3d_Vec2i thePoint,
Aspect_VKeyMouse  theButton,
Aspect_VKeyFlags  theModifiers,
bool  theIsDoubleClick 
)
virtual

Handle mouse button click event (emulated by UpdateMouseButtons() while releasing single button). Note that as this method is called by UpdateMouseButtons(), it should be executed from UI thread. Default implementation redirects to SelectInViewer(). This method is expected to be called from UI thread.

Parameters
thePointmouse cursor position
theButtonclicked button
theModifierskey modifiers
theIsDoubleClickflag indicating double mouse click
Returns
TRUE if View should be redrawn

Reimplemented in ViewerTest_EventManager.

◆ UpdateMousePosition()

virtual bool AIS_ViewController::UpdateMousePosition ( const Graphic3d_Vec2i thePoint,
Aspect_VKeyMouse  theButtons,
Aspect_VKeyFlags  theModifiers,
bool  theIsEmulated 
)
overridevirtual

Handle mouse cursor movement event. This method is expected to be called from UI thread.

Parameters
thePointmouse cursor position
theButtonspressed buttons
theModifierskey modifiers
theIsEmulatedif TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen
Returns
TRUE if View should be redrawn

Implements Aspect_WindowInputListener.

◆ UpdateMouseScroll()

virtual bool AIS_ViewController::UpdateMouseScroll ( const Aspect_ScrollDelta theDelta)
overridevirtual

Update mouse scroll event; redirects to UpdateZoom by default. This method is expected to be called from UI thread.

Parameters
theDeltamouse cursor position and delta
Returns
TRUE if new event has been created or FALSE if existing one has been updated

Implements Aspect_WindowInputListener.

Reimplemented in ViewerTest_EventManager.

◆ UpdatePolySelection()

virtual void AIS_ViewController::UpdatePolySelection ( const Graphic3d_Vec2i thePnt,
bool  theToAppend 
)
virtual

Update polygonal selection tool. This method is expected to be called from UI thread.

Parameters
thePntnew point to add to polygon
theToAppendappend new point or update the last point

◆ UpdateRubberBand()

virtual void AIS_ViewController::UpdateRubberBand ( const Graphic3d_Vec2i thePntFrom,
const Graphic3d_Vec2i thePntTo 
)
virtual

Update rectangle selection tool. This method is expected to be called from UI thread.

Parameters
thePntFromrectangle first corner
thePntTorectangle another corner

◆ UpdateTouchPoint()

virtual void AIS_ViewController::UpdateTouchPoint ( Standard_Size  theId,
const Graphic3d_Vec2d thePnt 
)
overridevirtual

Update touch point with the given ID. If point with specified ID was not registered before, it will be added. This method is expected to be called from UI thread.

Parameters
theIdtouch unique identifier
thePnttouch coordinates

Reimplemented from Aspect_WindowInputListener.

◆ UpdateViewOrientation()

virtual void AIS_ViewController::UpdateViewOrientation ( V3d_TypeOfOrientation  theOrientation,
bool  theToFitAll 
)
virtual

Reset view orientation. This method is expected to be called from UI thread.

◆ UpdateZoom()

virtual bool AIS_ViewController::UpdateZoom ( const Aspect_ScrollDelta theDelta)
virtual

Update zoom event (e.g. from mouse scroll). This method is expected to be called from UI thread.

Parameters
theDeltamouse cursor position to zoom at and zoom delta
Returns
TRUE if new zoom event has been created or FALSE if existing one has been updated

◆ UpdateZRotation()

virtual bool AIS_ViewController::UpdateZRotation ( double  theAngle)
virtual

Update Z rotation event.

Parameters
theAnglerotation angle, in radians.
Returns
TRUE if new zoom event has been created or FALSE if existing one has been updated

◆ ViewAnimation()

const Handle< AIS_AnimationCamera > & AIS_ViewController::ViewAnimation ( ) const
inline

Return view animation; empty (but not NULL) animation by default.

◆ WalkSpeedAbsolute()

float AIS_ViewController::WalkSpeedAbsolute ( ) const
inline

Return normal walking speed, in m/s; 1.5 by default.

◆ WalkSpeedRelative()

float AIS_ViewController::WalkSpeedRelative ( ) const
inline

Return walking speed relative to scene bounding box; 0.1 by default.

Field Documentation

◆ myAnchorPointPrs1

Handle< AIS_Point > AIS_ViewController::myAnchorPointPrs1
protected

anchor point presentation (Graphic3d_ZLayerId_Top)

◆ myAnchorPointPrs2

Handle< AIS_Point > AIS_ViewController::myAnchorPointPrs2
protected

anchor point presentation (Graphic3d_ZLayerId_Topmost)

◆ myCamStartOpCenter

gp_Pnt AIS_ViewController::myCamStartOpCenter
protected

camera Center position at the beginning of rotation

◆ myCamStartOpDir

gp_Dir AIS_ViewController::myCamStartOpDir
protected

camera View direction at the beginning of rotation

◆ myCamStartOpEye

gp_Pnt AIS_ViewController::myCamStartOpEye
protected

camera Eye position at the beginning of rotation

◆ myCamStartOpToCenter

gp_Vec AIS_ViewController::myCamStartOpToCenter
protected

vector from rotation gravity point to camera Center at the beginning of rotation

◆ myCamStartOpToEye

gp_Vec AIS_ViewController::myCamStartOpToEye
protected

vector from rotation gravity point to camera Eye at the beginning of rotation

◆ myCamStartOpUp

gp_Dir AIS_ViewController::myCamStartOpUp
protected

camera Up direction at the beginning of rotation

◆ myDragObject

Handle< AIS_InteractiveObject > AIS_ViewController::myDragObject
protected

currently dragged object

◆ myDragOwner

Handle< SelectMgr_EntityOwner > AIS_ViewController::myDragOwner
protected

detected owner of currently dragged object

◆ myGL

AIS_ViewInputBuffer AIS_ViewController::myGL
protected

buffer for rendering thread

◆ myHasHlrOnBeforeRotation

Standard_Boolean AIS_ViewController::myHasHlrOnBeforeRotation
protected

flag for restoring Computed mode after rotation

◆ myHasThrust

Standard_Boolean AIS_ViewController::myHasThrust
protected

flag indicating active thrust

◆ myIsContinuousRedraw

Standard_Boolean AIS_ViewController::myIsContinuousRedraw
protected

continuous redrawing (without immediate rendering optimization)

◆ myLastEventsTime

Standard_Real AIS_ViewController::myLastEventsTime
protected

last fetched events timer value for computing delta/progress

◆ myMinCamDistance

Standard_Real AIS_ViewController::myMinCamDistance
protected

minimal camera distance for zoom operation

◆ myMouseAccel

Standard_ShortReal AIS_ViewController::myMouseAccel
protected

mouse input acceleration ratio in First Person mode

◆ myMouseActiveGesture

AIS_MouseGesture AIS_ViewController::myMouseActiveGesture
protected

initiated mouse gesture (by pressing mouse button)

◆ myMouseActiveIdleRotation

Standard_Boolean AIS_ViewController::myMouseActiveIdleRotation
protected

flag indicating view idle rotation state

◆ myMouseClickCounter

Standard_Integer AIS_ViewController::myMouseClickCounter
protected

counter for handling double-click event

◆ myMouseClickThreshold

Standard_Real AIS_ViewController::myMouseClickThreshold
protected

mouse click threshold in pixels; 3 by default

◆ myMouseClickTimer

OSD_Timer AIS_ViewController::myMouseClickTimer
protected

timer for handling double-click event

◆ myMouseDoubleClickInt

Standard_Real AIS_ViewController::myMouseDoubleClickInt
protected

double click interval in seconds; 0.4 by default

◆ myMouseGestureMap

AIS_MouseGestureMap AIS_ViewController::myMouseGestureMap
protected

map defining mouse gestures

◆ myMouseGestureMapDrag

AIS_MouseGestureMap AIS_ViewController::myMouseGestureMapDrag
protected

secondary map defining mouse gestures for dragging

◆ myMousePressPoint

Graphic3d_Vec2i AIS_ViewController::myMousePressPoint
protected

mouse position where active gesture was been initiated

◆ myMouseProgressPoint

Graphic3d_Vec2i AIS_ViewController::myMouseProgressPoint
protected

gesture progress

◆ myMouseSelectionSchemes

AIS_MouseSelectionSchemeMap AIS_ViewController::myMouseSelectionSchemes
protected

map defining selection schemes bound to mouse + modifiers

◆ myMouseSingleButton

Standard_Integer AIS_ViewController::myMouseSingleButton
protected

index of mouse button pressed alone (>0)

◆ myMouseStopDragOnUnclick

Standard_Boolean AIS_ViewController::myMouseStopDragOnUnclick
protected

queue stop dragging even with at next mouse unclick

◆ myNavigationMode

AIS_NavigationMode AIS_ViewController::myNavigationMode
protected

navigation mode (orbit rotation / first person)

◆ myNbTouchesLast

Standard_Integer AIS_ViewController::myNbTouchesLast
protected

number of touches within previous gesture flush to track gesture changes

◆ myObjAnimation

Handle< AIS_Animation > AIS_ViewController::myObjAnimation
protected

objects animation

◆ myOrbitAccel

Standard_ShortReal AIS_ViewController::myOrbitAccel
protected

Orbit rotation acceleration ratio.

◆ myPanPnt3d

gp_Pnt AIS_ViewController::myPanPnt3d
protected

active panning anchor point

◆ myPrevMoveTo

Graphic3d_Vec2i AIS_ViewController::myPrevMoveTo
protected

previous position of MoveTo event in 3D viewer

◆ myRotatePnt3d

gp_Pnt AIS_ViewController::myRotatePnt3d
protected

active rotation center of gravity

◆ myRotateStartYawPitchRoll

Graphic3d_Vec3d AIS_ViewController::myRotateStartYawPitchRoll
protected

camera yaw pitch roll at the beginning of rotation

◆ myRotationMode

AIS_RotationMode AIS_ViewController::myRotationMode
protected

rotation mode

◆ myRubberBand

Handle< AIS_RubberBand > AIS_ViewController::myRubberBand
protected

Rubber-band presentation.

◆ myScrollZoomRatio

Standard_ShortReal AIS_ViewController::myScrollZoomRatio
protected

distance ratio for mapping mouse scroll event to zoom; 15.0 by default

◆ myStartPanCoord

Graphic3d_Vec2d AIS_ViewController::myStartPanCoord
protected

touch coordinates at the moment of starting panning gesture

◆ myStartRotCoord

Graphic3d_Vec2d AIS_ViewController::myStartRotCoord
protected

touch coordinates at the moment of starting rotating gesture

◆ myThrustSpeed

Standard_ShortReal AIS_ViewController::myThrustSpeed
protected

active thrust value

◆ myToAllowDragging

Standard_Boolean AIS_ViewController::myToAllowDragging
protected

enable dragging object; TRUE by default

◆ myToAllowHighlight

Standard_Boolean AIS_ViewController::myToAllowHighlight
protected

enable dynamic highlight on mouse move; TRUE by default

◆ myToAllowPanning

Standard_Boolean AIS_ViewController::myToAllowPanning
protected

enable panning; TRUE by default

◆ myToAllowRotation

Standard_Boolean AIS_ViewController::myToAllowRotation
protected

enable rotation; TRUE by default

◆ myToAllowTouchZRotation

Standard_Boolean AIS_ViewController::myToAllowTouchZRotation
protected

enable z-rotation two-touches gesture; FALSE by default

◆ myToAllowZFocus

Standard_Boolean AIS_ViewController::myToAllowZFocus
protected

enable ZFocus change; TRUE by default

◆ myToAllowZooming

Standard_Boolean AIS_ViewController::myToAllowZooming
protected

enable zooming; TRUE by default

◆ myToAskNextFrame

Standard_Boolean AIS_ViewController::myToAskNextFrame
protected

flag indicating that another frame should be drawn right after this one

◆ myToDisplayXRAuxDevices

Standard_Boolean AIS_ViewController::myToDisplayXRAuxDevices
protected

flag to display auxiliary tracked XR devices

◆ myToDisplayXRHands

Standard_Boolean AIS_ViewController::myToDisplayXRHands
protected

flag to display XR hands

◆ myToInvertPitch

Standard_Boolean AIS_ViewController::myToInvertPitch
protected

flag inverting pitch direction while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown

◆ myToLockOrbitZUp

Standard_Boolean AIS_ViewController::myToLockOrbitZUp
protected

force camera up orientation within AIS_NavigationMode_Orbit rotation mode

◆ myToPauseObjAnimation

Standard_Boolean AIS_ViewController::myToPauseObjAnimation
protected

flag to pause objects animation on mouse click; FALSE by default

◆ myToShowPanAnchorPoint

Standard_Boolean AIS_ViewController::myToShowPanAnchorPoint
protected

option displaying panning anchor point

◆ myToShowRotateCenter

Standard_Boolean AIS_ViewController::myToShowRotateCenter
protected

option displaying rotation center point

◆ myToStickToRayOnRotation

Standard_Boolean AIS_ViewController::myToStickToRayOnRotation
protected

project picked point to ray while rotating around point; TRUE by default

◆ myToStickToRayOnZoom

Standard_Boolean AIS_ViewController::myToStickToRayOnZoom
protected

project picked point to ray while zooming at point, TRUE by default

◆ myTouchClick

Aspect_Touch AIS_ViewController::myTouchClick
protected

single touch position for handling clicks

◆ myTouchClickThresholdPx

Standard_ShortReal AIS_ViewController::myTouchClickThresholdPx
protected

touch click threshold in pixels; 3 by default

◆ myTouchDoubleTapTimer

OSD_Timer AIS_ViewController::myTouchDoubleTapTimer
protected

timer for handling double tap

◆ myTouchDraggingThresholdPx

Standard_ShortReal AIS_ViewController::myTouchDraggingThresholdPx
protected

distance for starting one-touch dragging gesture in pixels; 6 by default

◆ myTouchPanThresholdPx

Standard_ShortReal AIS_ViewController::myTouchPanThresholdPx
protected

threshold for starting two-touch panning gesture in pixels; 4 by default

◆ myTouchRotationThresholdPx

Standard_ShortReal AIS_ViewController::myTouchRotationThresholdPx
protected

threshold for starting one-touch rotation gesture in pixels; 6 by default

◆ myTouchToleranceScale

Standard_ShortReal AIS_ViewController::myTouchToleranceScale
protected

tolerance scale factor; 1.0 by default

◆ myTouchZoomRatio

Standard_ShortReal AIS_ViewController::myTouchZoomRatio
protected

distance ratio for mapping two-touch zoom (pitch) gesture from pixels to zoom; 0.13 by default

◆ myTouchZoomThresholdPx

Standard_ShortReal AIS_ViewController::myTouchZoomThresholdPx
protected

threshold for starting two-touch zoom (pitch) gesture in pixels; 6 by default

◆ myTouchZRotationThreshold

Standard_ShortReal AIS_ViewController::myTouchZRotationThreshold
protected

threshold for starting two-touch Z-rotation gesture in radians; 2 degrees by default

◆ myUI

AIS_ViewInputBuffer AIS_ViewController::myUI
protected

buffer for UI thread

◆ myUpdateStartPointPan

Standard_Boolean AIS_ViewController::myUpdateStartPointPan
protected

flag indicating that new anchor point should be picked for starting panning gesture

◆ myUpdateStartPointRot

Standard_Boolean AIS_ViewController::myUpdateStartPointRot
protected

flag indicating that new gravity point should be picked for starting rotation gesture

◆ myUpdateStartPointZRot

Standard_Boolean AIS_ViewController::myUpdateStartPointZRot
protected

flag indicating that new gravity point should be picked for starting Z-rotation gesture

◆ myViewAnimation

Handle< AIS_AnimationCamera > AIS_ViewController::myViewAnimation
protected

view animation

◆ myWalkSpeedAbsolute

Standard_ShortReal AIS_ViewController::myWalkSpeedAbsolute
protected

normal walking speed, in m/s; 1.5 by default

◆ myWalkSpeedRelative

Standard_ShortReal AIS_ViewController::myWalkSpeedRelative
protected

walking speed relative to scene bounding box; 0.1 by default

◆ myXRLaserPickColor

Quantity_Color AIS_ViewController::myXRLaserPickColor
protected

color of picking laser

◆ myXRLaserTeleColor

Quantity_Color AIS_ViewController::myXRLaserTeleColor
protected

color of teleport laser

◆ myXRLastPickDepthLeft

Standard_Real AIS_ViewController::myXRLastPickDepthLeft
protected

last picking depth for left hand

◆ myXRLastPickDepthRight

Standard_Real AIS_ViewController::myXRLastPickDepthRight
protected

last picking depth for right hand

◆ myXRLastPickingHand

Aspect_XRTrackedDeviceRole AIS_ViewController::myXRLastPickingHand
protected

active hand for picking objects

◆ myXRLastTeleportHand

Aspect_XRTrackedDeviceRole AIS_ViewController::myXRLastTeleportHand
protected

active hand for teleport

◆ myXRPickingHaptic

Aspect_XRHapticActionData AIS_ViewController::myXRPickingHaptic
protected

vibration on dynamic highlighting

◆ myXRPrsDevices

NCollection_Array1<Handle< AIS_XRTrackedDevice > > AIS_ViewController::myXRPrsDevices
protected

array of XR tracked devices presentations

◆ myXRSelectHaptic

Aspect_XRHapticActionData AIS_ViewController::myXRSelectHaptic
protected

vibration on selection

◆ myXRTeleportHaptic

Aspect_XRHapticActionData AIS_ViewController::myXRTeleportHaptic
protected

vibration on picking teleport destination

◆ myXRTurnAngle

Standard_Real AIS_ViewController::myXRTurnAngle
protected

discrete turn angle for XR trackpad


The documentation for this class was generated from the following file: