Open CASCADE Technology  7.4.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. More...
 
const AIS_ViewInputBufferInputBuffer (AIS_ViewInputBufferType theType) const
 Return input buffer. More...
 
AIS_ViewInputBufferChangeInputBuffer (AIS_ViewInputBufferType theType)
 Return input buffer. More...
 
const Handle< AIS_AnimationCamera > & ViewAnimation () const
 Return view animation; empty (but not NULL) animation by default. More...
 
void SetViewAnimation (const Handle< AIS_AnimationCamera > &theAnimation)
 Set view animation to be handled within handleViewRedraw(). More...
 
void AbortViewAnimation ()
 Interrupt active view animation. More...
 
global parameters
AIS_RotationMode RotationMode () const
 Return camera rotation mode, AIS_RotationMode_BndBoxActive by default. More...
 
void SetRotationMode (AIS_RotationMode theMode)
 Set camera rotation mode. More...
 
AIS_NavigationMode NavigationMode () const
 Return camera navigation mode; AIS_NavigationMode_Orbit by default. More...
 
void SetNavigationMode (AIS_NavigationMode theMode)
 Set camera navigation mode. More...
 
float MouseAcceleration () const
 Return mouse input acceleration ratio in First Person mode; 1.0 by default. More...
 
void SetMouseAcceleration (float theRatio)
 Set mouse input acceleration ratio. More...
 
float OrbitAcceleration () const
 Return orbit rotation acceleration ratio; 1.0 by default. More...
 
void SetOrbitAcceleration (float theRatio)
 Set orbit rotation acceleration ratio. More...
 
bool ToShowPanAnchorPoint () const
 Return TRUE if panning anchor point within perspective projection should be displayed in 3D Viewer; TRUE by default. More...
 
void SetShowPanAnchorPoint (bool theToShow)
 Set if panning anchor point within perspective projection should be displayed in 3D Viewer. More...
 
bool ToShowRotateCenter () const
 Return TRUE if rotation point should be displayed in 3D Viewer; TRUE by default. More...
 
void SetShowRotateCenter (bool theToShow)
 Set if rotation point should be displayed in 3D Viewer. More...
 
bool ToLockOrbitZUp () const
 Return TRUE if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up; FALSE by default. More...
 
void SetLockOrbitZUp (bool theToForceUp)
 Set if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up. More...
 
bool ToAllowTouchZRotation () const
 Return TRUE if z-rotation via two-touches gesture is enabled; FALSE by default. More...
 
void SetAllowTouchZRotation (bool theToEnable)
 Set if z-rotation via two-touches gesture is enabled. More...
 
bool ToAllowRotation () const
 Return TRUE if camera rotation is allowed; TRUE by default. More...
 
void SetAllowRotation (bool theToEnable)
 Set if camera rotation is allowed. More...
 
bool ToAllowPanning () const
 Return TRUE if panning is allowed; TRUE by default. More...
 
void SetAllowPanning (bool theToEnable)
 Set if panning is allowed. More...
 
bool ToAllowZooming () const
 Return TRUE if zooming is allowed; TRUE by default. More...
 
void SetAllowZooming (bool theToEnable)
 Set if zooming is allowed. More...
 
bool ToAllowZFocus () const
 Return TRUE if ZFocus change is allowed; TRUE by default. More...
 
void SetAllowZFocus (bool theToEnable)
 Set if ZFocus change is allowed. More...
 
bool ToAllowHighlight () const
 Return TRUE if dynamic highlight on mouse move is allowed; TRUE by default. More...
 
void SetAllowHighlight (bool theToEnable)
 Set if dragging object is allowed. More...
 
bool ToAllowDragging () const
 Return TRUE if dragging object is allowed; TRUE by default. More...
 
void SetAllowDragging (bool theToEnable)
 Set if dynamic highlight on mouse move is allowed. More...
 
bool ToStickToRayOnZoom () const
 Return TRUE if picked point should be projected to picking ray on zooming at point; TRUE by default. More...
 
void SetStickToRayOnZoom (bool theToEnable)
 Set if picked point should be projected to picking ray on zooming at point. More...
 
bool ToStickToRayOnRotation () const
 Return TRUE if picked point should be projected to picking ray on rotating around point; TRUE by default. More...
 
void SetStickToRayOnRotation (bool theToEnable)
 Set if picked point should be projected to picking ray on rotating around point. More...
 
bool ToInvertPitch () const
 Return TRUE if pitch direction should be inverted while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown; FALSE by default. More...
 
void SetInvertPitch (bool theToInvert)
 Set flag inverting pitch direction. More...
 
float WalkSpeedAbsolute () const
 Return normal walking speed, in m/s; 1.5 by default. More...
 
void SetWalkSpeedAbsolute (float theSpeed)
 Set normal walking speed, in m/s; 1.5 by default. More...
 
float WalkSpeedRelative () const
 Return walking speed relative to scene bounding box; 0.1 by default. More...
 
void SetWalkSpeedRelative (float theFactor)
 Set walking speed relative to scene bounding box. More...
 
float ThrustSpeed () const
 Return active thrust value; 0.0f by default. More...
 
void SetThrustSpeed (float theSpeed)
 Set active thrust value. More...
 
bool HasPreviousMoveTo () const
 Return TRUE if previous position of MoveTo has been defined. More...
 
const Graphic3d_Vec2iPreviousMoveTo () const
 Return previous position of MoveTo event in 3D viewer. More...
 
void ResetPreviousMoveTo ()
 Reset previous position of MoveTo. More...
 
keyboard input
const Aspect_VKeySetKeys () const
 Return keyboard state. More...
 
Aspect_VKeySetChangeKeys ()
 Return keyboard state. More...
 
virtual void KeyDown (Aspect_VKey theKey, double theTime, double thePressure=1.0)
 Press key. More...
 
virtual void KeyUp (Aspect_VKey theKey, double theTime)
 Release key. More...
 
virtual void KeyFromAxis (Aspect_VKey theNegative, Aspect_VKey thePositive, double theTime, double thePressure)
 Simulate key up/down events from axis value. More...
 
AIS_WalkDelta FetchNavigationKeys (Standard_Real theCrouchRatio, Standard_Real theRunRatio)
 Fetch active navigation actions. More...
 
mouse input
const AIS_MouseGestureMapMouseGestureMap () const
 Return map defining mouse gestures. More...
 
AIS_MouseGestureMapChangeMouseGestureMap ()
 Return map defining mouse gestures. More...
 
double MouseDoubleClickInterval () const
 Return double click interval in seconds; 0.4 by default. More...
 
void SetMouseDoubleClickInterval (double theSeconds)
 Set double click interval in seconds. More...
 
virtual void SelectInViewer (const Graphic3d_Vec2i &thePnt, const bool theIsXOR=false)
 Perform selection in 3D viewer. This method is expected to be called from UI thread. More...
 
virtual void SelectInViewer (const NCollection_Sequence< Graphic3d_Vec2i > &thePnts, const bool theIsXOR=false)
 Perform selection in 3D viewer. This method is expected to be called from UI thread. More...
 
virtual void UpdateRubberBand (const Graphic3d_Vec2i &thePntFrom, const Graphic3d_Vec2i &thePntTo, const bool theIsXOR=false)
 Update rectangle selection tool. This method is expected to be called from UI thread. More...
 
virtual void UpdatePolySelection (const Graphic3d_Vec2i &thePnt, bool theToAppend)
 Update polygonal selection tool. This method is expected to be called from UI thread. More...
 
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. More...
 
virtual bool UpdateZRotation (double theAngle)
 Update Z rotation event. More...
 
virtual bool UpdateMouseScroll (const Aspect_ScrollDelta &theDelta)
 Update mouse scroll event; redirects to UpdateZoom by default. This method is expected to be called from UI thread. More...
 
virtual bool UpdateMouseButtons (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButtons, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse button press/release event. This method is expected to be called from UI thread. More...
 
virtual bool UpdateMousePosition (const Graphic3d_Vec2i &thePoint, Aspect_VKeyMouse theButtons, Aspect_VKeyFlags theModifiers, bool theIsEmulated)
 Handle mouse cursor movement event. This method is expected to be called from UI thread. More...
 
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. More...
 
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. More...
 
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. More...
 
Aspect_VKeyMouse PressedMouseButtons () const
 Return currently pressed mouse buttons. More...
 
Aspect_VKeyFlags LastMouseFlags () const
 Return active key modifiers passed with last mouse event. More...
 
const Graphic3d_Vec2iLastMousePosition () const
 Return last mouse position. More...
 

Protected Attributes

keyboard input variables
Aspect_VKeySet myKeys
 keyboard state More...
 
mouse input variables
Standard_Real myMouseClickThreshold
 mouse click threshold in pixels; 3 by default More...
 
Standard_Real myMouseDoubleClickInt
 double click interval in seconds; 0.4 by default More...
 
Standard_ShortReal myScrollZoomRatio
 distance ratio for mapping mouse scroll event to zoom; 15.0 by default More...
 
AIS_MouseGestureMap myMouseGestureMap
 map defining mouse gestures More...
 
AIS_MouseGesture myMouseActiveGesture
 initiated mouse gesture (by pressing mouse button) More...
 
Standard_Boolean myMouseActiveIdleRotation
 flag indicating view idle rotation state More...
 
Graphic3d_Vec2i myMousePositionLast
 last mouse position More...
 
Graphic3d_Vec2i myMousePressPoint
 mouse position where active gesture was been initiated More...
 
Graphic3d_Vec2i myMouseProgressPoint
 gesture progress More...
 
OSD_Timer myMouseClickTimer
 timer for handling double-click event More...
 
Standard_Integer myMouseClickCounter
 counter for handling double-click event More...
 
Aspect_VKeyMouse myMousePressed
 active mouse buttons More...
 
Aspect_VKeyFlags myMouseModifiers
 active key modifiers passed with last mouse event More...
 
Standard_Integer myMouseSingleButton
 index of mouse button pressed alone (>0) More...
 
multi-touch input variables
Standard_ShortReal myTouchToleranceScale
 tolerance scale factor; 1.0 by default More...
 
Standard_ShortReal myTouchRotationThresholdPx
 threshold for starting one-touch rotation gesture in pixels; 6 by default More...
 
Standard_ShortReal myTouchZRotationThreshold
 threshold for starting two-touch Z-rotation gesture in radians; 2 degrees by default More...
 
Standard_ShortReal myTouchPanThresholdPx
 threshold for starting two-touch panning gesture in pixels; 4 by default More...
 
Standard_ShortReal myTouchZoomThresholdPx
 threshold for starting two-touch zoom (pitch) gesture in pixels; 6 by default More...
 
Standard_ShortReal myTouchZoomRatio
 distance ratio for mapping two-touch zoom (pitch) gesture from pixels to zoom; 0.13 by default More...
 
Aspect_TouchMap myTouchPoints
 map of active touches More...
 
Graphic3d_Vec2d myStartPanCoord
 touch coordinates at the moment of starting panning gesture More...
 
Graphic3d_Vec2d myStartRotCoord
 touch coordinates at the moment of starting rotating gesture More...
 
Standard_Integer myNbTouchesLast
 number of touches within previous gesture flush to track gesture changes More...
 
Standard_Boolean myUpdateStartPointPan
 flag indicating that new anchor point should be picked for starting panning gesture More...
 
Standard_Boolean myUpdateStartPointRot
 flag indicating that new gravity point should be picked for starting rotation gesture More...
 
Standard_Boolean myUpdateStartPointZRot
 flag indicating that new gravity point should be picked for starting Z-rotation gesture More...
 
rotation/panning transient state variables
Handle< AIS_PointmyAnchorPointPrs1
 anchor point presentation (Graphic3d_ZLayerId_Top) More...
 
Handle< AIS_PointmyAnchorPointPrs2
 anchor point presentation (Graphic3d_ZLayerId_Topmost) More...
 
gp_Pnt myPanPnt3d
 active panning anchor point More...
 
gp_Pnt myRotatePnt3d
 active rotation center of gravity More...
 
gp_Dir myCamStartOpUp
 camera Up direction at the beginning of rotation More...
 
gp_Dir myCamStartOpDir
 camera View direction at the beginning of rotation More...
 
gp_Pnt myCamStartOpEye
 camera Eye position at the beginning of rotation More...
 
gp_Pnt myCamStartOpCenter
 camera Center position at the beginning of rotation More...
 
gp_Vec myCamStartOpToCenter
 vector from rotation gravity point to camera Center at the beginning of rotation More...
 
gp_Vec myCamStartOpToEye
 vector from rotation gravity point to camera Eye at the beginning of rotation More...
 
Graphic3d_Vec3d myRotateStartYawPitchRoll
 camera yaw pitch roll at the beginning of rotation More...
 

multi-touch input

AIS_ViewInputBuffer myUI
 buffer for UI thread More...
 
AIS_ViewInputBuffer myGL
 buffer for rendering thread More...
 
OSD_Timer myEventTimer
 timer for timestamping events More...
 
Standard_Real myLastEventsTime
 last fetched events timer value for computing delta/progress More...
 
Standard_Boolean myToAskNextFrame
 flag indicating that another frame should be drawn right after this one More...
 
Standard_Real myMinCamDistance
 minimal camera distance for zoom operation More...
 
AIS_RotationMode myRotationMode
 rotation mode More...
 
AIS_NavigationMode myNavigationMode
 navigation mode (orbit rotation / first person) More...
 
Standard_ShortReal myMouseAccel
 mouse input acceleration ratio in First Person mode More...
 
Standard_ShortReal myOrbitAccel
 Orbit rotation acceleration ratio. More...
 
Standard_Boolean myToShowPanAnchorPoint
 option displaying panning anchor point More...
 
Standard_Boolean myToShowRotateCenter
 option displaying rotation center point More...
 
Standard_Boolean myToLockOrbitZUp
 force camera up orientation within AIS_NavigationMode_Orbit rotation mode More...
 
Standard_Boolean myToInvertPitch
 flag inverting pitch direction while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown More...
 
Standard_Boolean myToAllowTouchZRotation
 enable z-rotation two-touches gesture; FALSE by default More...
 
Standard_Boolean myToAllowRotation
 enable rotation; TRUE by default More...
 
Standard_Boolean myToAllowPanning
 enable panning; TRUE by default More...
 
Standard_Boolean myToAllowZooming
 enable zooming; TRUE by default More...
 
Standard_Boolean myToAllowZFocus
 enable ZFocus change; TRUE by default More...
 
Standard_Boolean myToAllowHighlight
 enable dynamic highlight on mouse move; TRUE by default More...
 
Standard_Boolean myToAllowDragging
 enable dragging object; TRUE by default More...
 
Standard_Boolean myToStickToRayOnZoom
 project picked point to ray while zooming at point, TRUE by default More...
 
Standard_Boolean myToStickToRayOnRotation
 project picked point to ray while rotating around point; TRUE by default More...
 
Standard_ShortReal myWalkSpeedAbsolute
 normal walking speed, in m/s; 1.5 by default More...
 
Standard_ShortReal myWalkSpeedRelative
 walking speed relative to scene bounding box; 0.1 by default More...
 
Standard_ShortReal myThrustSpeed
 active thrust value More...
 
Standard_Boolean myHasThrust
 flag indicating active thrust More...
 
Handle< AIS_AnimationCameramyViewAnimation
 view animation More...
 
Handle< AIS_RubberBandmyRubberBand
 Rubber-band presentation. More...
 
Handle< AIS_InteractiveObjectmyDragObject
 currently dragged object More...
 
Graphic3d_Vec2i myPrevMoveTo
 previous position of MoveTo event in 3D viewer More...
 
Standard_Boolean myHasHlrOnBeforeRotation
 flag for restoring Computed mode after rotation More...
 
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. More...
 
void SetTouchToleranceScale (float theTolerance)
 Set scale factor for adjusting tolerances for starting multi-touch gestures. More...
 
bool HasTouchPoints () const
 Return TRUE if touches map is not empty. More...
 
virtual void AddTouchPoint (Standard_Size theId, const Graphic3d_Vec2d &thePnt, Standard_Boolean theClearBefore=false)
 Add touch point with the given ID. This method is expected to be called from UI thread. More...
 
virtual bool RemoveTouchPoint (Standard_Size theId, Standard_Boolean theClearSelectPnts=false)
 Remove touch point with the given ID. This method is expected to be called from UI thread. More...
 
virtual void UpdateTouchPoint (Standard_Size theId, const Graphic3d_Vec2d &thePnt)
 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. More...
 
double EventTime () const
 Return event time (e.g. current time). More...
 
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. More...
 
virtual void UpdateViewOrientation (V3d_TypeOfOrientation theOrientation, bool theToFitAll)
 Reset view orientation. This method is expected to be called from UI thread. More...
 
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). More...
 
virtual void HandleViewEvents (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Process events within rendering thread. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void handleCameraActions (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const AIS_WalkDelta &theWalk)
 Perform camera actions. This method is expected to be called from rendering thread. More...
 
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. More...
 
bool toAskNextFrame () const
 Return TRUE if another frame should be drawn right after this one. More...
 
void setAskNextFrame (bool theToDraw=true)
 Set if another frame should be drawn right after this one. More...
 
bool hasPanningAnchorPoint () const
 Return if panning anchor point has been defined. More...
 
const gp_PntpanningAnchorPoint () const
 Return active panning anchor point. More...
 
void setPanningAnchorPoint (const gp_Pnt &thePnt)
 Set active panning anchor point. More...
 
virtual void handlePanning (const Handle< V3d_View > &theView)
 Handle panning event myGL.Panning. More...
 
virtual void handleZRotate (const Handle< V3d_View > &theView)
 Handle Z rotation event myGL.ZRotate. More...
 
double MinZoomDistance () const
 Return minimal camera distance for zoom operation. More...
 
void SetMinZoomDistance (double theDist)
 Set minimal camera distance for zoom operation. More...
 
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. More...
 
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. More...
 
virtual void handleOrbitRotation (const Handle< V3d_View > &theView, const gp_Pnt &thePnt, bool theToLockZUp)
 Handle orbital rotation events myGL.OrbitRotation. More...
 
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. More...
 
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. More...
 
virtual void flushBuffers (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Flush buffers. More...
 
virtual void flushGestures (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView)
 Flush touch gestures. More...
 
void updateEventsTime (double &thePrevTime, double &theCurrTime)
 Return current and previously fetched event times. This callback is intended to compute delta between sequentially processed events. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void contextLazyMoveTo (const Handle< AIS_InteractiveContext > &theCtx, const Handle< V3d_View > &theView, const Graphic3d_Vec2i &thePnt)
 Lazy AIS_InteractiveContext::MoveTo() with myPrevMoveTo check. More...
 

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.

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 
)
virtual

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

◆ ChangeInputBuffer()

AIS_ViewInputBuffer& AIS_ViewController::ChangeInputBuffer ( AIS_ViewInputBufferType  theType)
inline

Return input buffer.

◆ ChangeKeys()

Aspect_VKeySet& AIS_ViewController::ChangeKeys ( )
inline

Return keyboard state.

◆ ChangeMouseGestureMap()

AIS_MouseGestureMap& AIS_ViewController::ChangeMouseGestureMap ( )
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 AIS_ViewController::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.

◆ 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 camera actions. 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.

◆ 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.

◆ 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.

◆ 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

◆ 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 AIS_ViewController::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.

◆ KeyDown()

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

Press key.

Parameters
theKeykey pressed
theTimeevent timestamp

◆ KeyFromAxis()

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

Simulate key up/down events from axis value.

◆ Keys()

const Aspect_VKeySet& AIS_ViewController::Keys ( ) const
inline

Return keyboard state.

◆ KeyUp()

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

Release key.

Parameters
theKeykey pressed
theTimeevent timestamp

Reimplemented in ViewerTest_EventManager.

◆ LastMouseFlags()

Aspect_VKeyFlags AIS_ViewController::LastMouseFlags ( ) const
inline

Return active key modifiers passed with last mouse event.

◆ LastMousePosition()

const Graphic3d_Vec2i& AIS_ViewController::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.

◆ NavigationMode()

AIS_NavigationMode AIS_ViewController::NavigationMode ( ) const
inline

Return camera navigation mode; AIS_NavigationMode_Orbit 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.

◆ 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.

◆ 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 AIS_ViewController::PressedMouseButtons ( ) const
inline

Return currently pressed mouse buttons.

◆ PressMouseButton()

bool AIS_ViewController::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.

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 View should be redrawn

◆ PreviousMoveTo()

const Graphic3d_Vec2i& AIS_ViewController::PreviousMoveTo ( ) const
inline

Return previous position of MoveTo event in 3D viewer.

◆ ReleaseMouseButton()

bool AIS_ViewController::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.

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 View should be redrawn

◆ RemoveTouchPoint()

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

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

◆ 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 bool  theIsXOR = false 
)
virtual

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

Parameters
thePntpicking point
theIsXORXOR selection flag

◆ SelectInViewer() [2/2]

virtual void AIS_ViewController::SelectInViewer ( const NCollection_Sequence< Graphic3d_Vec2i > &  thePnts,
const bool  theIsXOR = false 
)
virtual

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

Parameters
thePntspicking point
theIsXORXOR selection flag

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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 
)
virtual

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

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

◆ UpdateMousePosition()

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

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

◆ UpdateMouseScroll()

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

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

◆ 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,
const bool  theIsXOR = false 
)
virtual

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

Parameters
thePntFromrectangle first corner
thePntTorectangle another corner
theIsXORXOR selection flag

◆ UpdateTouchPoint()

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

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

◆ 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

◆ myEventTimer

OSD_Timer AIS_ViewController::myEventTimer
protected

timer for timestamping events

◆ 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

◆ myKeys

Aspect_VKeySet AIS_ViewController::myKeys
protected

keyboard state

◆ 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

◆ myMouseModifiers

Aspect_VKeyFlags AIS_ViewController::myMouseModifiers
protected

active key modifiers passed with last mouse event

◆ myMousePositionLast

Graphic3d_Vec2i AIS_ViewController::myMousePositionLast
protected

last mouse position

◆ myMousePressed

Aspect_VKeyMouse AIS_ViewController::myMousePressed
protected

active mouse buttons

◆ myMousePressPoint

Graphic3d_Vec2i AIS_ViewController::myMousePressPoint
protected

mouse position where active gesture was been initiated

◆ myMouseProgressPoint

Graphic3d_Vec2i AIS_ViewController::myMouseProgressPoint
protected

gesture progress

◆ myMouseSingleButton

Standard_Integer AIS_ViewController::myMouseSingleButton
protected

index of mouse button pressed alone (>0)

◆ 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

◆ 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

◆ 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

◆ 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

◆ myTouchPanThresholdPx

Standard_ShortReal AIS_ViewController::myTouchPanThresholdPx
protected

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

◆ myTouchPoints

Aspect_TouchMap AIS_ViewController::myTouchPoints
protected

map of active touches

◆ 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


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