Open CASCADE Technology
7.4.0
|
Auxiliary structure for handling viewer events between GUI and Rendering threads. More...
#include <AIS_ViewController.hxx>
Public Member Functions | |
AIS_ViewController () | |
Empty constructor. More... | |
const AIS_ViewInputBuffer & | InputBuffer (AIS_ViewInputBufferType theType) const |
Return input buffer. More... | |
AIS_ViewInputBuffer & | ChangeInputBuffer (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_Vec2i & | PreviousMoveTo () const |
Return previous position of MoveTo event in 3D viewer. More... | |
void | ResetPreviousMoveTo () |
Reset previous position of MoveTo. More... | |
keyboard input | |
const Aspect_VKeySet & | Keys () const |
Return keyboard state. More... | |
Aspect_VKeySet & | ChangeKeys () |
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_MouseGestureMap & | MouseGestureMap () const |
Return map defining mouse gestures. More... | |
AIS_MouseGestureMap & | ChangeMouseGestureMap () |
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_Vec2i & | LastMousePosition () 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_Point > | myAnchorPointPrs1 |
anchor point presentation (Graphic3d_ZLayerId_Top) More... | |
Handle< AIS_Point > | myAnchorPointPrs2 |
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_AnimationCamera > | myViewAnimation |
view animation More... | |
Handle< AIS_RubberBand > | myRubberBand |
Rubber-band presentation. More... | |
Handle< AIS_InteractiveObject > | myDragObject |
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_Pnt & | panningAnchorPoint () 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... | |
Auxiliary structure for handling viewer events between GUI and Rendering threads.
Class implements the following features:
AIS_ViewController::AIS_ViewController | ( | ) |
Empty constructor.
void AIS_ViewController::AbortViewAnimation | ( | ) |
Interrupt active view animation.
|
virtual |
Add touch point with the given ID. This method is expected to be called from UI thread.
theId | touch unique identifier |
thePnt | touch coordinates |
theClearBefore | if TRUE previously registered touches will be removed |
|
inline |
Return input buffer.
|
inline |
Return keyboard state.
|
inline |
Return map defining mouse gestures.
|
protectedvirtual |
Lazy AIS_InteractiveContext::MoveTo() with myPrevMoveTo check.
|
inline |
Return event time (e.g. current time).
AIS_WalkDelta AIS_ViewController::FetchNavigationKeys | ( | Standard_Real | theCrouchRatio, |
Standard_Real | theRunRatio | ||
) |
Fetch active navigation actions.
|
protectedvirtual |
Flush buffers.
|
protectedvirtual |
Flush touch gestures.
|
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).
theCtx | interactive context |
theView | active view |
theToHandle | if TRUE, the HandleViewEvents() will be called |
|
virtual |
Compute rotation gravity center point depending on rotation mode. This method is expected to be called from rendering thread.
|
virtual |
Perform camera actions. This method is expected to be called from rendering thread.
|
protectedvirtual |
Perform dynamic highlight on mouse move. This method is expected to be called from rendering thread.
|
virtual |
Perform moveto/selection/dragging. This method is expected to be called from rendering thread.
|
virtual |
Handle orbital rotation events myGL.OrbitRotation.
theView | view to modify |
thePnt | 3D point to rotate around |
theToLockZUp | amend camera to exclude roll angle (put camera Up vector to plane containing global Z and view direction) |
Handle panning event myGL.Panning.
|
protectedvirtual |
Perform selection via mouse click. This method is expected to be called from rendering thread.
|
protectedvirtual |
Perform rubber-band selection. This method is expected to be called from rendering thread.
|
virtual |
Process events within rendering thread.
|
virtual |
Handle view redraw. This method is expected to be called from rendering thread.
|
virtual |
Handle view direction rotation events myGL.ViewRotation. This method is expected to be called from rendering thread.
theView | camera to modify |
theYawExtra | extra yaw increment |
thePitchExtra | extra pitch increment |
theRoll | roll value |
theToRestartOnIncrement | flag indicating flight mode |
|
virtual |
Handle ZScroll event myGL.ZoomActions. This method is expected to be called from rendering thread.
|
virtual |
Handle zoom event myGL.ZoomActions. This method is expected to be called from rendering thread.
Handle Z rotation event myGL.ZRotate.
|
inline |
Return if panning anchor point has been defined.
|
inline |
Return TRUE if previous position of MoveTo has been defined.
|
inline |
Return TRUE if touches map is not empty.
|
inline |
Return input buffer.
|
virtual |
Press key.
theKey | key pressed |
theTime | event timestamp |
|
virtual |
Simulate key up/down events from axis value.
|
inline |
Return keyboard state.
|
virtual |
Release key.
theKey | key pressed |
theTime | event timestamp |
Reimplemented in ViewerTest_EventManager.
|
inline |
Return active key modifiers passed with last mouse event.
|
inline |
Return last mouse position.
|
inline |
Return minimal camera distance for zoom operation.
|
inline |
Return mouse input acceleration ratio in First Person mode; 1.0 by default.
|
inline |
Return double click interval in seconds; 0.4 by default.
|
inline |
Return map defining mouse gestures.
|
inline |
Return camera navigation mode; AIS_NavigationMode_Orbit by default.
|
virtual |
Callback called by handleMoveTo() on dragging object in 3D Viewer. This method is expected to be called from rendering thread.
|
virtual |
Callback called by handleMoveTo() on Selection in 3D Viewer. This method is expected to be called from rendering thread.
|
inline |
Return orbit rotation acceleration ratio; 1.0 by default.
|
inline |
Return active panning anchor point.
|
virtual |
Pick closest point under mouse cursor. This method is expected to be called from rendering thread.
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 |
|
inline |
Return currently pressed mouse buttons.
|
inline |
Handle mouse button press event. This method is expected to be called from UI thread.
thePoint | mouse cursor position |
theButton | pressed button |
theModifiers | key modifiers |
theIsEmulated | if TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen |
|
inline |
Return previous position of MoveTo event in 3D viewer.
|
inline |
Handle mouse button release event. This method is expected to be called from UI thread.
thePoint | mouse cursor position |
theButton | released button |
theModifiers | key modifiers |
theIsEmulated | if TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen |
|
virtual |
Remove touch point with the given ID. This method is expected to be called from UI thread.
theId | touch unique identifier |
theClearSelectPnts | if TRUE will initiate clearing of selection points |
|
inline |
Reset previous position of MoveTo.
|
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.
|
inline |
Return camera rotation mode, AIS_RotationMode_BndBoxActive by default.
|
virtual |
Perform selection in 3D viewer. This method is expected to be called from UI thread.
thePnt | picking point |
theIsXOR | XOR selection flag |
|
virtual |
Perform selection in 3D viewer. This method is expected to be called from UI thread.
thePnts | picking point |
theIsXOR | XOR selection flag |
|
inline |
Set if dynamic highlight on mouse move is allowed.
|
inline |
Set if dragging object is allowed.
|
inline |
Set if panning is allowed.
|
inline |
Set if camera rotation is allowed.
|
inline |
Set if z-rotation via two-touches gesture is enabled.
|
inline |
Set if ZFocus change is allowed.
|
inline |
Set if zooming is allowed.
|
inline |
Set if another frame should be drawn right after this one.
|
inline |
Set flag inverting pitch direction.
|
inline |
Set if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up.
|
inline |
Set minimal camera distance for zoom operation.
|
inline |
Set mouse input acceleration ratio.
|
inline |
Set double click interval in seconds.
void AIS_ViewController::SetNavigationMode | ( | AIS_NavigationMode | theMode | ) |
Set camera navigation mode.
|
inline |
Set orbit rotation acceleration ratio.
|
inline |
Set active panning anchor point.
|
inline |
Set camera rotation mode.
|
inline |
Set if panning anchor point within perspective projection should be displayed in 3D Viewer.
|
inline |
Set if rotation point should be displayed in 3D Viewer.
|
inline |
Set if picked point should be projected to picking ray on rotating around point.
|
inline |
Set if picked point should be projected to picking ray on zooming at point.
|
inline |
Set active thrust value.
|
inline |
Set scale factor for adjusting tolerances for starting multi-touch gestures.
|
inline |
Set view animation to be handled within handleViewRedraw().
|
inline |
Set normal walking speed, in m/s; 1.5 by default.
|
inline |
Set walking speed relative to scene bounding box.
|
inline |
Return active thrust value; 0.0f by default.
|
inline |
Return TRUE if dragging object is allowed; TRUE by default.
|
inline |
Return TRUE if dynamic highlight on mouse move is allowed; TRUE by default.
|
inline |
Return TRUE if panning is allowed; TRUE by default.
|
inline |
Return TRUE if camera rotation is allowed; TRUE by default.
|
inline |
Return TRUE if z-rotation via two-touches gesture is enabled; FALSE by default.
|
inline |
Return TRUE if ZFocus change is allowed; TRUE by default.
|
inline |
Return TRUE if zooming is allowed; TRUE by default.
|
inline |
Return TRUE if another frame should be drawn right after this one.
|
inline |
Return TRUE if pitch direction should be inverted while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown; FALSE by default.
|
inline |
Return TRUE if camera up orientation within AIS_NavigationMode_Orbit rotation mode should be forced Z up; FALSE by default.
|
inline |
Return TRUE if panning anchor point within perspective projection should be displayed in 3D Viewer; TRUE by default.
|
inline |
Return TRUE if rotation point should be displayed in 3D Viewer; TRUE by default.
|
inline |
Return TRUE if picked point should be projected to picking ray on rotating around point; TRUE by default.
|
inline |
Return TRUE if picked point should be projected to picking ray on zooming at point; TRUE by default.
|
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.
|
inlineprotected |
Return current and previously fetched event times. This callback is intended to compute delta between sequentially processed events.
thePrevTime | [out] events time fetched previous time by this method |
theCurrTime | [out] actual events time |
|
virtual |
Handle mouse button press/release event. This method is expected to be called from UI thread.
thePoint | mouse cursor position |
theButtons | pressed buttons |
theModifiers | key modifiers |
theIsEmulated | if TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen |
Reimplemented in ViewerTest_EventManager.
|
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.
thePoint | mouse cursor position |
theButton | clicked button |
theModifiers | key modifiers |
theIsDoubleClick | flag indicating double mouse click |
|
virtual |
Handle mouse cursor movement event. This method is expected to be called from UI thread.
thePoint | mouse cursor position |
theButtons | pressed buttons |
theModifiers | key modifiers |
theIsEmulated | if TRUE then mouse event comes NOT from real mouse but emulated from non-precise input like touch on screen |
|
virtual |
Update mouse scroll event; redirects to UpdateZoom by default. This method is expected to be called from UI thread.
theDelta | mouse cursor position and delta |
|
virtual |
Update polygonal selection tool. This method is expected to be called from UI thread.
thePnt | new point to add to polygon |
theToAppend | append new point or update the last point |
|
virtual |
Update rectangle selection tool. This method is expected to be called from UI thread.
thePntFrom | rectangle first corner |
thePntTo | rectangle another corner |
theIsXOR | XOR selection flag |
|
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.
theId | touch unique identifier |
thePnt | touch coordinates |
|
virtual |
Reset view orientation. This method is expected to be called from UI thread.
|
virtual |
Update zoom event (e.g. from mouse scroll). This method is expected to be called from UI thread.
theDelta | mouse cursor position to zoom at and zoom delta |
|
virtual |
Update Z rotation event.
theAngle | rotation angle, in radians. |
|
inline |
Return view animation; empty (but not NULL) animation by default.
|
inline |
Return normal walking speed, in m/s; 1.5 by default.
|
inline |
Return walking speed relative to scene bounding box; 0.1 by default.
anchor point presentation (Graphic3d_ZLayerId_Top)
anchor point presentation (Graphic3d_ZLayerId_Topmost)
|
protected |
camera Center position at the beginning of rotation
|
protected |
camera View direction at the beginning of rotation
|
protected |
camera Eye position at the beginning of rotation
|
protected |
vector from rotation gravity point to camera Center at the beginning of rotation
|
protected |
vector from rotation gravity point to camera Eye at the beginning of rotation
|
protected |
camera Up direction at the beginning of rotation
|
protected |
currently dragged object
|
protected |
timer for timestamping events
|
protected |
buffer for rendering thread
|
protected |
flag for restoring Computed mode after rotation
|
protected |
flag indicating active thrust
|
protected |
keyboard state
|
protected |
last fetched events timer value for computing delta/progress
|
protected |
minimal camera distance for zoom operation
|
protected |
mouse input acceleration ratio in First Person mode
|
protected |
initiated mouse gesture (by pressing mouse button)
|
protected |
flag indicating view idle rotation state
|
protected |
counter for handling double-click event
|
protected |
mouse click threshold in pixels; 3 by default
|
protected |
timer for handling double-click event
|
protected |
double click interval in seconds; 0.4 by default
|
protected |
map defining mouse gestures
|
protected |
active key modifiers passed with last mouse event
|
protected |
last mouse position
|
protected |
active mouse buttons
|
protected |
mouse position where active gesture was been initiated
|
protected |
gesture progress
|
protected |
index of mouse button pressed alone (>0)
|
protected |
navigation mode (orbit rotation / first person)
|
protected |
number of touches within previous gesture flush to track gesture changes
|
protected |
Orbit rotation acceleration ratio.
|
protected |
active panning anchor point
|
protected |
previous position of MoveTo event in 3D viewer
|
protected |
active rotation center of gravity
|
protected |
camera yaw pitch roll at the beginning of rotation
|
protected |
rotation mode
|
protected |
Rubber-band presentation.
|
protected |
distance ratio for mapping mouse scroll event to zoom; 15.0 by default
|
protected |
touch coordinates at the moment of starting panning gesture
|
protected |
touch coordinates at the moment of starting rotating gesture
|
protected |
active thrust value
|
protected |
enable dragging object; TRUE by default
|
protected |
enable dynamic highlight on mouse move; TRUE by default
|
protected |
enable panning; TRUE by default
|
protected |
enable rotation; TRUE by default
|
protected |
enable z-rotation two-touches gesture; FALSE by default
|
protected |
enable ZFocus change; TRUE by default
|
protected |
enable zooming; TRUE by default
|
protected |
flag indicating that another frame should be drawn right after this one
|
protected |
flag inverting pitch direction while processing Aspect_VKey_NavLookUp/Aspect_VKey_NavLookDown
|
protected |
force camera up orientation within AIS_NavigationMode_Orbit rotation mode
|
protected |
option displaying panning anchor point
|
protected |
option displaying rotation center point
|
protected |
project picked point to ray while rotating around point; TRUE by default
|
protected |
project picked point to ray while zooming at point, TRUE by default
|
protected |
threshold for starting two-touch panning gesture in pixels; 4 by default
|
protected |
map of active touches
|
protected |
threshold for starting one-touch rotation gesture in pixels; 6 by default
|
protected |
tolerance scale factor; 1.0 by default
|
protected |
distance ratio for mapping two-touch zoom (pitch) gesture from pixels to zoom; 0.13 by default
|
protected |
threshold for starting two-touch zoom (pitch) gesture in pixels; 6 by default
|
protected |
threshold for starting two-touch Z-rotation gesture in radians; 2 degrees by default
|
protected |
buffer for UI thread
|
protected |
flag indicating that new anchor point should be picked for starting panning gesture
|
protected |
flag indicating that new gravity point should be picked for starting rotation gesture
|
protected |
flag indicating that new gravity point should be picked for starting Z-rotation gesture
|
protected |
view animation
|
protected |
normal walking speed, in m/s; 1.5 by default
|
protected |
walking speed relative to scene bounding box; 0.1 by default