File indexing completed on 2025-01-18 10:02:56
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _AIS_ViewController_HeaderFile
0015 #define _AIS_ViewController_HeaderFile
0016
0017 #include <Aspect_WindowInputListener.hxx>
0018 #include <Aspect_XRHapticActionData.hxx>
0019 #include <Aspect_XRTrackedDeviceRole.hxx>
0020 #include <AIS_DragAction.hxx>
0021 #include <AIS_MouseGesture.hxx>
0022 #include <AIS_NavigationMode.hxx>
0023 #include <AIS_ViewInputBuffer.hxx>
0024 #include <AIS_RotationMode.hxx>
0025 #include <AIS_WalkDelta.hxx>
0026
0027 #include <gp_Pnt.hxx>
0028 #include <Graphic3d_Vec3.hxx>
0029 #include <NCollection_Array1.hxx>
0030 #include <OSD_Timer.hxx>
0031 #include <Precision.hxx>
0032 #include <Quantity_ColorRGBA.hxx>
0033 #include <Standard_Mutex.hxx>
0034
0035 class AIS_Animation;
0036 class AIS_AnimationCamera;
0037 class AIS_InteractiveObject;
0038 class AIS_InteractiveContext;
0039 class AIS_Point;
0040 class AIS_RubberBand;
0041 class AIS_XRTrackedDevice;
0042 class SelectMgr_EntityOwner;
0043 class V3d_View;
0044 class WNT_HIDSpaceMouse;
0045
0046
0047
0048
0049
0050
0051
0052
0053 class AIS_ViewController : public Aspect_WindowInputListener
0054 {
0055 public:
0056
0057
0058 Standard_EXPORT AIS_ViewController();
0059
0060
0061 Standard_EXPORT virtual ~AIS_ViewController();
0062
0063
0064 const AIS_ViewInputBuffer& InputBuffer (AIS_ViewInputBufferType theType) const { return theType == AIS_ViewInputBufferType_UI ? myUI : myGL; }
0065
0066
0067 AIS_ViewInputBuffer& ChangeInputBuffer (AIS_ViewInputBufferType theType) { return theType == AIS_ViewInputBufferType_UI ? myUI : myGL; }
0068
0069
0070 const Handle(AIS_AnimationCamera)& ViewAnimation() const { return myViewAnimation; }
0071
0072
0073 void SetViewAnimation (const Handle(AIS_AnimationCamera)& theAnimation) { myViewAnimation = theAnimation; }
0074
0075
0076 Standard_EXPORT void AbortViewAnimation();
0077
0078
0079 const Handle(AIS_Animation)& ObjectsAnimation() const { return myObjAnimation; }
0080
0081
0082 void SetObjectsAnimation (const Handle(AIS_Animation)& theAnimation) { myObjAnimation = theAnimation; }
0083
0084
0085 bool ToPauseObjectsAnimation() const { return myToPauseObjAnimation; }
0086
0087
0088 void SetPauseObjectsAnimation (bool theToPause) { myToPauseObjAnimation = theToPause; }
0089
0090
0091
0092 bool IsContinuousRedraw() const { return myIsContinuousRedraw; }
0093
0094
0095 void SetContinuousRedraw (bool theToEnable) { myIsContinuousRedraw = theToEnable; }
0096
0097 public:
0098
0099
0100 AIS_RotationMode RotationMode() const { return myRotationMode; }
0101
0102
0103 void SetRotationMode (AIS_RotationMode theMode) { myRotationMode = theMode; }
0104
0105
0106 AIS_NavigationMode NavigationMode() const { return myNavigationMode; }
0107
0108
0109 Standard_EXPORT void SetNavigationMode (AIS_NavigationMode theMode);
0110
0111
0112 float MouseAcceleration() const { return myMouseAccel; }
0113
0114
0115 void SetMouseAcceleration (float theRatio) { myMouseAccel = theRatio; }
0116
0117
0118 float OrbitAcceleration() const { return myOrbitAccel; }
0119
0120
0121 void SetOrbitAcceleration (float theRatio) { myOrbitAccel = theRatio; }
0122
0123
0124 bool ToShowPanAnchorPoint() const { return myToShowPanAnchorPoint; }
0125
0126
0127 void SetShowPanAnchorPoint (bool theToShow) { myToShowPanAnchorPoint = theToShow; }
0128
0129
0130 bool ToShowRotateCenter() const { return myToShowRotateCenter; }
0131
0132
0133 void SetShowRotateCenter (bool theToShow) { myToShowRotateCenter = theToShow; }
0134
0135
0136 bool ToLockOrbitZUp() const { return myToLockOrbitZUp; }
0137
0138
0139 void SetLockOrbitZUp (bool theToForceUp) { myToLockOrbitZUp = theToForceUp; }
0140
0141
0142 bool ToAllowTouchZRotation() const { return myToAllowTouchZRotation; }
0143
0144
0145 void SetAllowTouchZRotation (bool theToEnable) { myToAllowTouchZRotation = theToEnable; }
0146
0147
0148 bool ToAllowRotation() const { return myToAllowRotation; }
0149
0150
0151 void SetAllowRotation (bool theToEnable) { myToAllowRotation = theToEnable; }
0152
0153
0154 bool ToAllowPanning() const { return myToAllowPanning; }
0155
0156
0157 void SetAllowPanning (bool theToEnable) { myToAllowPanning = theToEnable; }
0158
0159
0160 bool ToAllowZooming() const { return myToAllowZooming; }
0161
0162
0163 void SetAllowZooming (bool theToEnable) { myToAllowZooming = theToEnable; }
0164
0165
0166 bool ToAllowZFocus() const { return myToAllowZFocus; }
0167
0168
0169 void SetAllowZFocus (bool theToEnable) { myToAllowZFocus = theToEnable; }
0170
0171
0172 bool ToAllowHighlight() const { return myToAllowHighlight; }
0173
0174
0175 void SetAllowHighlight (bool theToEnable) { myToAllowHighlight = theToEnable; }
0176
0177
0178 bool ToAllowDragging() const { return myToAllowDragging; }
0179
0180
0181 void SetAllowDragging (bool theToEnable) { myToAllowDragging = theToEnable; }
0182
0183
0184 bool ToStickToRayOnZoom() const { return myToStickToRayOnZoom; }
0185
0186
0187 void SetStickToRayOnZoom (bool theToEnable) { myToStickToRayOnZoom = theToEnable; }
0188
0189
0190 bool ToStickToRayOnRotation() const { return myToStickToRayOnRotation; }
0191
0192
0193 void SetStickToRayOnRotation (bool theToEnable) { myToStickToRayOnRotation = theToEnable; }
0194
0195
0196 bool ToInvertPitch() const { return myToInvertPitch; }
0197
0198
0199 void SetInvertPitch (bool theToInvert) { myToInvertPitch = theToInvert; }
0200
0201
0202 float WalkSpeedAbsolute() const { return myWalkSpeedAbsolute; }
0203
0204
0205 void SetWalkSpeedAbsolute (float theSpeed) { myWalkSpeedAbsolute = theSpeed; }
0206
0207
0208 float WalkSpeedRelative() const { return myWalkSpeedRelative; }
0209
0210
0211 void SetWalkSpeedRelative (float theFactor) { myWalkSpeedRelative = theFactor; }
0212
0213
0214 float ThrustSpeed() const { return myThrustSpeed; }
0215
0216
0217 void SetThrustSpeed (float theSpeed) { myThrustSpeed = theSpeed; }
0218
0219
0220 bool HasPreviousMoveTo() const { return myPrevMoveTo != Graphic3d_Vec2i (-1); }
0221
0222
0223 const Graphic3d_Vec2i& PreviousMoveTo() const { return myPrevMoveTo; }
0224
0225
0226 void ResetPreviousMoveTo() { myPrevMoveTo = Graphic3d_Vec2i (-1); }
0227
0228
0229 bool ToDisplayXRAuxDevices() const { return myToDisplayXRAuxDevices; }
0230
0231
0232 void SetDisplayXRAuxDevices (bool theToDisplay) { myToDisplayXRAuxDevices = theToDisplay; }
0233
0234
0235 bool ToDisplayXRHands() const { return myToDisplayXRHands; }
0236
0237
0238 void SetDisplayXRHands (bool theToDisplay) { myToDisplayXRHands = theToDisplay; }
0239
0240 public:
0241
0242 using Aspect_WindowInputListener::Keys;
0243 using Aspect_WindowInputListener::ChangeKeys;
0244
0245
0246
0247
0248
0249 Standard_EXPORT virtual void KeyDown (Aspect_VKey theKey,
0250 double theTime,
0251 double thePressure = 1.0) Standard_OVERRIDE;
0252
0253
0254
0255
0256
0257 Standard_EXPORT virtual void KeyUp (Aspect_VKey theKey,
0258 double theTime) Standard_OVERRIDE;
0259
0260
0261
0262 Standard_EXPORT virtual void KeyFromAxis (Aspect_VKey theNegative,
0263 Aspect_VKey thePositive,
0264 double theTime,
0265 double thePressure) Standard_OVERRIDE;
0266
0267
0268 Standard_EXPORT AIS_WalkDelta FetchNavigationKeys (Standard_Real theCrouchRatio,
0269 Standard_Real theRunRatio);
0270
0271 public:
0272
0273
0274 const AIS_MouseGestureMap& MouseGestureMap() const { return myMouseGestureMap; }
0275
0276
0277 AIS_MouseGestureMap& ChangeMouseGestureMap() { return myMouseGestureMap; }
0278
0279
0280 const AIS_MouseSelectionSchemeMap& MouseSelectionSchemes() const { return myMouseSelectionSchemes; }
0281
0282
0283 AIS_MouseSelectionSchemeMap& ChangeMouseSelectionSchemes() { return myMouseSelectionSchemes; }
0284
0285
0286 double MouseDoubleClickInterval() const { return myMouseDoubleClickInt; }
0287
0288
0289 void SetMouseDoubleClickInterval (double theSeconds) { myMouseDoubleClickInt = theSeconds; }
0290
0291
0292
0293
0294
0295 Standard_EXPORT virtual void SelectInViewer (const Graphic3d_Vec2i& thePnt,
0296 const AIS_SelectionScheme theScheme = AIS_SelectionScheme_Replace);
0297
0298
0299
0300
0301
0302 Standard_EXPORT virtual void SelectInViewer (const NCollection_Sequence<Graphic3d_Vec2i>& thePnts,
0303 const AIS_SelectionScheme theScheme = AIS_SelectionScheme_Replace);
0304
0305
0306
0307
0308
0309 Standard_EXPORT virtual void UpdateRubberBand (const Graphic3d_Vec2i& thePntFrom,
0310 const Graphic3d_Vec2i& thePntTo);
0311
0312
0313
0314
0315
0316 Standard_EXPORT virtual void UpdatePolySelection (const Graphic3d_Vec2i& thePnt,
0317 bool theToAppend);
0318
0319
0320
0321
0322
0323 Standard_EXPORT virtual bool UpdateZoom (const Aspect_ScrollDelta& theDelta);
0324
0325
0326
0327
0328 Standard_EXPORT virtual bool UpdateZRotation (double theAngle);
0329
0330
0331
0332
0333
0334 Standard_EXPORT virtual bool UpdateMouseScroll (const Aspect_ScrollDelta& theDelta) Standard_OVERRIDE;
0335
0336
0337
0338
0339
0340
0341
0342
0343
0344 Standard_EXPORT virtual bool UpdateMouseButtons (const Graphic3d_Vec2i& thePoint,
0345 Aspect_VKeyMouse theButtons,
0346 Aspect_VKeyFlags theModifiers,
0347 bool theIsEmulated) Standard_OVERRIDE;
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357 Standard_EXPORT virtual bool UpdateMousePosition (const Graphic3d_Vec2i& thePoint,
0358 Aspect_VKeyMouse theButtons,
0359 Aspect_VKeyFlags theModifiers,
0360 bool theIsEmulated) Standard_OVERRIDE;
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371 Standard_EXPORT virtual bool UpdateMouseClick (const Graphic3d_Vec2i& thePoint,
0372 Aspect_VKeyMouse theButton,
0373 Aspect_VKeyFlags theModifiers,
0374 bool theIsDoubleClick);
0375
0376 using Aspect_WindowInputListener::PressMouseButton;
0377 using Aspect_WindowInputListener::ReleaseMouseButton;
0378
0379 using Aspect_WindowInputListener::PressedMouseButtons;
0380 using Aspect_WindowInputListener::LastMouseFlags;
0381 using Aspect_WindowInputListener::LastMousePosition;
0382
0383 public:
0384
0385
0386
0387 float TouchToleranceScale() const { return myTouchToleranceScale; }
0388
0389
0390 void SetTouchToleranceScale (float theTolerance) { myTouchToleranceScale = theTolerance; }
0391
0392
0393
0394
0395
0396
0397 Standard_EXPORT virtual void AddTouchPoint (Standard_Size theId,
0398 const Graphic3d_Vec2d& thePnt,
0399 Standard_Boolean theClearBefore = false) Standard_OVERRIDE;
0400
0401
0402
0403
0404
0405
0406 Standard_EXPORT virtual bool RemoveTouchPoint (Standard_Size theId,
0407 Standard_Boolean theClearSelectPnts = false) Standard_OVERRIDE;
0408
0409
0410
0411
0412
0413
0414 Standard_EXPORT virtual void UpdateTouchPoint (Standard_Size theId,
0415 const Graphic3d_Vec2d& thePnt) Standard_OVERRIDE;
0416
0417 using Aspect_WindowInputListener::HasTouchPoints;
0418
0419 public:
0420
0421
0422 Standard_EXPORT virtual bool Update3dMouse (const WNT_HIDSpaceMouse& theEvent) Standard_OVERRIDE;
0423
0424 public:
0425
0426
0427
0428 virtual void ProcessExpose() Standard_OVERRIDE {}
0429
0430
0431
0432 virtual void ProcessConfigure (bool theIsResized) Standard_OVERRIDE
0433 {
0434 (void )theIsResized;
0435 }
0436
0437
0438
0439 virtual void ProcessInput() Standard_OVERRIDE {}
0440
0441
0442
0443 virtual void ProcessFocus (bool theIsActivated) Standard_OVERRIDE
0444 {
0445 if (!theIsActivated)
0446 {
0447 ResetViewInput();
0448 }
0449 }
0450
0451
0452
0453 virtual void ProcessClose() Standard_OVERRIDE {}
0454
0455 public:
0456
0457 using Aspect_WindowInputListener::EventTime;
0458
0459
0460
0461 Standard_EXPORT virtual void ResetViewInput();
0462
0463
0464
0465 Standard_EXPORT virtual void UpdateViewOrientation (V3d_TypeOfOrientation theOrientation,
0466 bool theToFitAll);
0467
0468
0469
0470
0471
0472
0473
0474 Standard_EXPORT virtual void FlushViewEvents (const Handle(AIS_InteractiveContext)& theCtx,
0475 const Handle(V3d_View)& theView,
0476 Standard_Boolean theToHandle = Standard_False);
0477
0478
0479 Standard_EXPORT virtual void HandleViewEvents (const Handle(AIS_InteractiveContext)& theCtx,
0480 const Handle(V3d_View)& theView);
0481
0482 public:
0483
0484
0485
0486 Standard_EXPORT virtual void OnSelectionChanged (const Handle(AIS_InteractiveContext)& theCtx,
0487 const Handle(V3d_View)& theView);
0488
0489
0490
0491 Standard_EXPORT virtual void OnObjectDragged (const Handle(AIS_InteractiveContext)& theCtx,
0492 const Handle(V3d_View)& theView,
0493 AIS_DragAction theAction);
0494
0495
0496
0497 Standard_EXPORT virtual void OnSubviewChanged (const Handle(AIS_InteractiveContext)& theCtx,
0498 const Handle(V3d_View)& theOldView,
0499 const Handle(V3d_View)& theNewView);
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509 Standard_EXPORT virtual bool PickPoint (gp_Pnt& thePnt,
0510 const Handle(AIS_InteractiveContext)& theCtx,
0511 const Handle(V3d_View)& theView,
0512 const Graphic3d_Vec2i& theCursor,
0513 bool theToStickToPickRay);
0514
0515
0516
0517
0518
0519
0520
0521
0522 Standard_EXPORT virtual bool PickAxis (gp_Pnt& theTopPnt,
0523 const Handle(AIS_InteractiveContext)& theCtx,
0524 const Handle(V3d_View)& theView,
0525 const gp_Ax1& theAxis);
0526
0527
0528
0529 Standard_EXPORT virtual gp_Pnt GravityPoint (const Handle(AIS_InteractiveContext)& theCtx,
0530 const Handle(V3d_View)& theView);
0531
0532
0533
0534 Standard_EXPORT virtual void FitAllAuto (const Handle(AIS_InteractiveContext)& theCtx,
0535 const Handle(V3d_View)& theView);
0536
0537 public:
0538
0539
0540
0541
0542 Standard_EXPORT virtual void handleViewOrientationKeys (const Handle(AIS_InteractiveContext)& theCtx,
0543 const Handle(V3d_View)& theView);
0544
0545
0546
0547 Standard_EXPORT virtual AIS_WalkDelta handleNavigationKeys (const Handle(AIS_InteractiveContext)& theCtx,
0548 const Handle(V3d_View)& theView);
0549
0550
0551
0552 Standard_EXPORT virtual void handleCameraActions (const Handle(AIS_InteractiveContext)& theCtx,
0553 const Handle(V3d_View)& theView,
0554 const AIS_WalkDelta& theWalk);
0555
0556
0557
0558 Standard_EXPORT virtual void handleMoveTo (const Handle(AIS_InteractiveContext)& theCtx,
0559 const Handle(V3d_View)& theView);
0560
0561
0562 bool toAskNextFrame() const { return myToAskNextFrame; }
0563
0564
0565 void setAskNextFrame (bool theToDraw = true) { myToAskNextFrame = theToDraw; }
0566
0567
0568 bool hasPanningAnchorPoint() const { return !Precision::IsInfinite (myPanPnt3d.X()); }
0569
0570
0571 const gp_Pnt& panningAnchorPoint() const { return myPanPnt3d; }
0572
0573
0574 void setPanningAnchorPoint (const gp_Pnt& thePnt) { myPanPnt3d = thePnt; }
0575
0576
0577 Standard_EXPORT virtual void handlePanning (const Handle(V3d_View)& theView);
0578
0579
0580 Standard_EXPORT virtual void handleZRotate (const Handle(V3d_View)& theView);
0581
0582
0583 double MinZoomDistance() const { return myMinCamDistance; }
0584
0585
0586 void SetMinZoomDistance (double theDist) { myMinCamDistance = theDist; }
0587
0588
0589
0590 Standard_EXPORT virtual void handleZoom (const Handle(V3d_View)& theView,
0591 const Aspect_ScrollDelta& theParams,
0592 const gp_Pnt* thePnt);
0593
0594
0595
0596 Standard_EXPORT virtual void handleZFocusScroll (const Handle(V3d_View)& theView,
0597 const Aspect_ScrollDelta& theParams);
0598
0599
0600
0601
0602
0603 Standard_EXPORT virtual void handleOrbitRotation (const Handle(V3d_View)& theView,
0604 const gp_Pnt& thePnt,
0605 bool theToLockZUp);
0606
0607
0608
0609
0610
0611
0612
0613
0614 Standard_EXPORT virtual void handleViewRotation (const Handle(V3d_View)& theView,
0615 double theYawExtra,
0616 double thePitchExtra,
0617 double theRoll,
0618 bool theToRestartOnIncrement);
0619
0620
0621
0622 Standard_EXPORT virtual void handleViewRedraw (const Handle(AIS_InteractiveContext)& theCtx,
0623 const Handle(V3d_View)& theView);
0624
0625 public:
0626
0627
0628
0629 Standard_EXPORT virtual void handleXRInput (const Handle(AIS_InteractiveContext)& theCtx,
0630 const Handle(V3d_View)& theView,
0631 const AIS_WalkDelta& theWalk);
0632
0633
0634 Standard_EXPORT virtual void handleXRTurnPad (const Handle(AIS_InteractiveContext)& theCtx,
0635 const Handle(V3d_View)& theView);
0636
0637
0638 Standard_EXPORT virtual void handleXRTeleport (const Handle(AIS_InteractiveContext)& theCtx,
0639 const Handle(V3d_View)& theView);
0640
0641
0642 Standard_EXPORT virtual void handleXRPicking (const Handle(AIS_InteractiveContext)& theCtx,
0643 const Handle(V3d_View)& theView);
0644
0645
0646 Standard_EXPORT virtual void handleXRHighlight (const Handle(AIS_InteractiveContext)& theCtx,
0647 const Handle(V3d_View)& theView);
0648
0649
0650 Standard_EXPORT virtual void handleXRPresentations (const Handle(AIS_InteractiveContext)& theCtx,
0651 const Handle(V3d_View)& theView);
0652
0653
0654 Standard_EXPORT virtual Standard_Integer handleXRMoveTo (const Handle(AIS_InteractiveContext)& theCtx,
0655 const Handle(V3d_View)& theView,
0656 const gp_Trsf& thePose,
0657 const Standard_Boolean theToHighlight);
0658
0659 protected:
0660
0661
0662 Standard_EXPORT virtual void flushBuffers (const Handle(AIS_InteractiveContext)& theCtx,
0663 const Handle(V3d_View)& theView);
0664
0665
0666 Standard_EXPORT virtual void flushGestures (const Handle(AIS_InteractiveContext)& theCtx,
0667 const Handle(V3d_View)& theView);
0668
0669
0670
0671
0672
0673 void updateEventsTime (double& thePrevTime,
0674 double& theCurrTime)
0675 {
0676 thePrevTime = myLastEventsTime;
0677 myLastEventsTime = EventTime();
0678 theCurrTime = myLastEventsTime;
0679 }
0680
0681
0682
0683 Standard_EXPORT virtual void handleSelectionPick (const Handle(AIS_InteractiveContext)& theCtx,
0684 const Handle(V3d_View)& theView);
0685
0686
0687
0688 Standard_EXPORT virtual void handleDynamicHighlight (const Handle(AIS_InteractiveContext)& theCtx,
0689 const Handle(V3d_View)& theView);
0690
0691
0692
0693 Standard_EXPORT virtual void handleSelectionPoly (const Handle(AIS_InteractiveContext)& theCtx,
0694 const Handle(V3d_View)& theView);
0695
0696
0697 Standard_EXPORT virtual void contextLazyMoveTo (const Handle(AIS_InteractiveContext)& theCtx,
0698 const Handle(V3d_View)& theView,
0699 const Graphic3d_Vec2i& thePnt);
0700
0701 protected:
0702
0703 AIS_ViewInputBuffer myUI;
0704 AIS_ViewInputBuffer myGL;
0705
0706 Standard_Real myLastEventsTime;
0707 Standard_Boolean myToAskNextFrame;
0708 Standard_Boolean myIsContinuousRedraw;
0709
0710 Standard_Real myMinCamDistance;
0711 AIS_RotationMode myRotationMode;
0712 AIS_NavigationMode myNavigationMode;
0713 Standard_ShortReal myMouseAccel;
0714 Standard_ShortReal myOrbitAccel;
0715 Standard_Boolean myToShowPanAnchorPoint;
0716 Standard_Boolean myToShowRotateCenter;
0717 Standard_Boolean myToLockOrbitZUp;
0718 Standard_Boolean myToInvertPitch;
0719 Standard_Boolean myToAllowTouchZRotation;
0720 Standard_Boolean myToAllowRotation;
0721 Standard_Boolean myToAllowPanning;
0722 Standard_Boolean myToAllowZooming;
0723 Standard_Boolean myToAllowZFocus;
0724 Standard_Boolean myToAllowHighlight;
0725 Standard_Boolean myToAllowDragging;
0726 Standard_Boolean myToStickToRayOnZoom;
0727 Standard_Boolean myToStickToRayOnRotation;
0728
0729 Standard_ShortReal myWalkSpeedAbsolute;
0730 Standard_ShortReal myWalkSpeedRelative;
0731 Standard_ShortReal myThrustSpeed;
0732 Standard_Boolean myHasThrust;
0733
0734 Handle(AIS_AnimationCamera) myViewAnimation;
0735 Handle(AIS_Animation) myObjAnimation;
0736 Standard_Boolean myToPauseObjAnimation;
0737 Handle(AIS_RubberBand) myRubberBand;
0738 Handle(SelectMgr_EntityOwner) myDragOwner;
0739 Handle(AIS_InteractiveObject) myDragObject;
0740 Graphic3d_Vec2i myPrevMoveTo;
0741 Standard_Boolean myHasHlrOnBeforeRotation;
0742
0743 protected:
0744
0745 NCollection_Array1<Handle(AIS_XRTrackedDevice)> myXRPrsDevices;
0746 Quantity_Color myXRLaserTeleColor;
0747 Quantity_Color myXRLaserPickColor;
0748 Aspect_XRTrackedDeviceRole myXRLastTeleportHand;
0749 Aspect_XRTrackedDeviceRole myXRLastPickingHand;
0750 Aspect_XRHapticActionData myXRTeleportHaptic;
0751 Aspect_XRHapticActionData myXRPickingHaptic;
0752 Aspect_XRHapticActionData myXRSelectHaptic;
0753 Standard_Real myXRLastPickDepthLeft;
0754 Standard_Real myXRLastPickDepthRight;
0755 Standard_Real myXRTurnAngle;
0756 Standard_Boolean myToDisplayXRAuxDevices;
0757 Standard_Boolean myToDisplayXRHands;
0758
0759 protected:
0760
0761 Standard_Real myMouseClickThreshold;
0762 Standard_Real myMouseDoubleClickInt;
0763 Standard_ShortReal myScrollZoomRatio;
0764
0765 AIS_MouseGestureMap myMouseGestureMap;
0766 AIS_MouseGestureMap myMouseGestureMapDrag;
0767 AIS_MouseGesture myMouseActiveGesture;
0768 AIS_MouseSelectionSchemeMap
0769 myMouseSelectionSchemes;
0770 Standard_Boolean myMouseActiveIdleRotation;
0771 Graphic3d_Vec2i myMousePressPoint;
0772 Graphic3d_Vec2i myMouseProgressPoint;
0773 OSD_Timer myMouseClickTimer;
0774 Standard_Integer myMouseClickCounter;
0775 Standard_Integer myMouseSingleButton;
0776 Standard_Boolean myMouseStopDragOnUnclick;
0777
0778 protected:
0779
0780 Standard_ShortReal myTouchToleranceScale;
0781 Standard_ShortReal myTouchClickThresholdPx;
0782 Standard_ShortReal myTouchRotationThresholdPx;
0783 Standard_ShortReal myTouchZRotationThreshold;
0784 Standard_ShortReal myTouchPanThresholdPx;
0785 Standard_ShortReal myTouchZoomThresholdPx;
0786 Standard_ShortReal myTouchZoomRatio;
0787 Standard_ShortReal myTouchDraggingThresholdPx;
0788
0789 Aspect_Touch myTouchClick;
0790 OSD_Timer myTouchDoubleTapTimer;
0791
0792 Graphic3d_Vec2d myStartPanCoord;
0793 Graphic3d_Vec2d myStartRotCoord;
0794 Standard_Integer myNbTouchesLast;
0795 Standard_Boolean myUpdateStartPointPan;
0796 Standard_Boolean myUpdateStartPointRot;
0797 Standard_Boolean myUpdateStartPointZRot;
0798
0799 protected:
0800
0801 Handle(AIS_Point) myAnchorPointPrs1;
0802 Handle(AIS_Point) myAnchorPointPrs2;
0803 gp_Pnt myPanPnt3d;
0804 gp_Pnt myRotatePnt3d;
0805 gp_Dir myCamStartOpUp;
0806 gp_Dir myCamStartOpDir;
0807 gp_Pnt myCamStartOpEye;
0808 gp_Pnt myCamStartOpCenter;
0809 gp_Vec myCamStartOpToCenter;
0810 gp_Vec myCamStartOpToEye;
0811 Graphic3d_Vec3d myRotateStartYawPitchRoll;
0812
0813 };
0814
0815 #endif