VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtObserverEventProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 #include <vrvCore/DtElementEntry.h>
15 
17 
18 namespace makVrv
19 {
20  class DtDe;
21  class DtInputDriver;
22  class DtObserver;
23  class DtIntersectorResult;
24 
29  {
30  public:
31 
33  DtObserverEventProcessor(DtInputDriver& inputDriver, DtDe& de);
34 
36  virtual ~DtObserverEventProcessor();
37 
38  virtual bool isMouseLooking() const;
39  virtual bool isTerrainDragging() const;
40  virtual bool isTerrainOrbitDragging() const;
41  virtual bool isViewDragging() const;
42 
48  virtual void getHiddenMousePosition( int& mouseX, int& mouseY );
49 
53  virtual bool processMouseEvent( const DtMouseEvent& ev, DtChannel& channel);
54 
58  virtual bool processKeyboardEvent( const DtKeyEvent& ev, DtChannel& channel);
59 
63  virtual bool processPinchGesture( const DtPinchGesture& ev, DtChannel& channel);
64 
67  virtual const std::string& className();
68 
71  static bool isJumpToEvent( DtMouseEvent::EventType mouseEventType,
73 
76  static bool isAttachToEvent( DtMouseEvent::EventType mouseEventType,
78 
79  protected:
80 
81  virtual void setFlashlightControlEnabled(bool enabled);
82 
83  virtual void processObjectMousedOn( DtObserver& observer, DtChannel& channel,
84  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
85 
86  virtual void processTerrainMousedOn( DtObserver& observer, DtChannel& channel,
87  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
88 
89  virtual void showMouse( DtChannel& channel );
90  virtual void hideMouse( DtChannel& channel, const DtMouseEvent& mouseEvent );
91 
92  //View drag behavior
93  virtual void viewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
94  virtual void startViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
95  virtual void continueViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
96  virtual void stopViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
97 
98  //Mouse look behavior
99  virtual void mouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
100  virtual void startMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
101  virtual void continueMouseLook( DtObserver&, DtChannel&, const DtMouseEvent& );
102  virtual void stopMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
103 
104  //Terrain drag behavior
105  virtual void dragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
106  virtual void startDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
107  virtual void continueDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
108  virtual void stopDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
109 
110  virtual void scrollLevelObserverByWheel( DtObserver& observer, DtChannel& channel,
111  const DtMouseEvent& mouseEvent);
112  virtual void moveObserverByWheel( DtObserver&, DtChannel&, const DtMouseEvent&);
113  virtual void changeViewMagnificationByWheel( DtObserver&, DtChannel&,
114  const DtMouseEvent&);
115  virtual void changeViewResolutionByWheel( DtObserver& observer,
116  DtChannel& channel, const DtMouseEvent& mouseEvent );
117  virtual void resetMagnification( DtObserver&, DtChannel&, const DtMouseEvent&);
118 
119  virtual void changeObserverSpeedByWheel(DtObserver& observer, DtChannel& channel,
120  const DtMouseEvent& me);
121 
122  virtual void moveObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
123  virtual void orbitObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
124 
125  virtual void pickIntoScene(DtObserver&, DtChannel&, const DtMouseEvent&);
126  virtual void rotate2DObserver(DtObserver&, double xDelta, double yDelta);
127 
128  // Find the observer associated with this channel (may return 0)
129  virtual DtObserver* findObserverForChannel( const DtChannel& channel );
130 
132  virtual DtElementEntry::ObjectType typeFromId( const DtUniqueID& id );
133 
134  protected:
135 
138  std::string myName;
139 
142 
147 
151 
154 
155  double myDragStartX;
156  double myDragStartY;
157  double myDragStartZ;
158 
162 
169 
173 
176  double myLastMouseX;
177  double myLastMouseY;
178  };
179 }
bool myIsTerrainOrbitDragging
Definition: DtObserverEventProcessor.h:145
double myDragStartY
Definition: DtObserverEventProcessor.h:156
This class encapsulates a Key event.
Definition: DtKeyEvent.h:19
DtPinchGesture represents a Pinch Multitouch Gesture.
Definition: DtPinchGesture.h:26
bool myFlashlightControlOn
Definition: DtObserverEventProcessor.h:141
std::string myName
Definition: DtObserverEventProcessor.h:138
int myHiddenMouseY
Definition: DtObserverEventProcessor.h:153
Descriptor for a single intersection result.
Definition: DtIntersector.h:33
char myQuadrant
The quadrant the mouse was pressed into – 1 upper left, 2 upper right 3 lower right, 4 lower left.
Definition: DtObserverEventProcessor.h:161
EventType
Describe the types of mouse events supported.
Definition: DtMouseEvent.h:26
double myHalfWindowHeight
Definition: DtObserverEventProcessor.h:168
double myLastViewDragY
Definition: DtObserverEventProcessor.h:150
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:22
The Scene event processor handles user interaction with the observer and the scene.
Definition: DtObserverEventProcessor.h:28
double myVirtualMouseY
Definition: DtObserverEventProcessor.h:166
double myDragStartX
Definition: DtObserverEventProcessor.h:155
double myHalfWindowWidth
Definition: DtObserverEventProcessor.h:167
unsigned int ObjectType
Definition: DtElementEntry.h:50
The abstract Channel Class.
Definition: DtChannel.h:29
int myHiddenMouseX
Definition: DtObserverEventProcessor.h:152
A facade for a DtObserverObject.
Definition: DtObserver.h:37
DtDe & myDe
Definition: DtObserverEventProcessor.h:136
int myMouseLookEventCount
This variable keep track of the mouse move event(exclued the center mouse event) count during the mou...
Definition: DtObserverEventProcessor.h:172
Interface for an event processor for a channel.
MouseModifier
Describe which modifier(s) are pressed.
Definition: DtMouseState.h:36
double myVirtualMouseX
For 2D rotate, keep a &quot;virtual&quot; mouse to keep the actual mouse centered.
Definition: DtObserverEventProcessor.h:165
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtMouseEvent myLastTerrainDragMouseEvent
Definition: DtObserverEventProcessor.h:146
This class&#39;s main responsibility is to handle keyboard and mouse events from OSG (Qt events are route...
Definition: DtInputDriver.h:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
double myLastMouseX
Definition: DtObserverEventProcessor.h:176
double myLastMouseDragTime
variables for keeping track of when the last
Definition: DtObserverEventProcessor.h:175
double myLastViewDragX
Definition: DtObserverEventProcessor.h:149
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool myIsMouseLooking
Definition: DtObserverEventProcessor.h:140
bool myIsTerrainDragging
This bool says we&#39;re really terrain dragging.
Definition: DtObserverEventProcessor.h:144
double myDragStartZ
Definition: DtObserverEventProcessor.h:157
Base class to provide boost signal/slot management.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
double myLastMouseY
Definition: DtObserverEventProcessor.h:177
The DtEventProcessorInterface defines the generic interface for classes which handle input events...
Definition: DtEventProcessorInterface.h:37
bool myIsViewDragging
Definition: DtObserverEventProcessor.h:148
Contains makVrv::DtElementEntry class.
DtInputDriver & myInputDriver
Definition: DtObserverEventProcessor.h:137
DtSignalConnectionManager myConnections
Definition: DtObserverEventProcessor.h:170
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)