VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtObserverEventProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: $ $Revision: $ $State: $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 
15 #include <vrvCore/vrvCore.h>
17 #include <vrvCore/DtElementEntry.h>
18 
20 
21 namespace makVrv
22 {
23  class DtDe;
24  class DtInputDriver;
25  class DtObserver;
26  class DtIntersectorResult;
27 
32  {
33  public:
34 
36  DtObserverEventProcessor(DtInputDriver& inputDriver, DtDe& de);
37 
39  virtual ~DtObserverEventProcessor();
40 
41  bool isMouseLooking() const;
42  bool isTerrainDragging() const;
43  bool isTerrainOrbitDragging() const;
44  bool isViewDragging() const;
45 
51  void getHiddenMousePosition( int& mouseX, int& mouseY );
52 
56  virtual bool processMouseEvent( const DtMouseEvent& ev, DtChannel& channel);
57 
61  virtual bool processKeyboardEvent( const DtKeyEvent& ev, DtChannel& channel);
62 
65  virtual const std::string& className();
66 
68  void processRightClickOnSelection( DtChannel& channel,
69  const DtUniqueID& objectId, const DtMouseState& mouseState );
70 
73  static bool isJumpToEvent( DtMouseEvent::EventType mouseEventType,
75 
78  static bool isAttachToEvent( DtMouseEvent::EventType mouseEventType,
80 
81  protected:
82 
83  void setFlashlightControlEnabled(bool enabled);
84 
85  void processObjectMousedOn( DtObserver& observer, DtChannel& channel,
86  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
87 
88  void processTerrainMousedOn( DtObserver& observer, DtChannel& channel,
89  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
90 
91  void showMouse( DtChannel& channel );
92  void hideMouse( DtChannel& channel, const DtMouseEvent& mouseEvent );
93 
94  //View drag behavior
95  void viewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
96  void startViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
97  void continueViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
98  void stopViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
99 
100  //Mouse look behavior
101  void mouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
102  void startMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
103  void continueMouseLook( DtObserver&, DtChannel&, const DtMouseEvent& );
104  void stopMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
105 
106  //Terrain drag behavior
107  void dragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
108  void startDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
109  void continueDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
110  void stopDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
111 
112  void scrollLevelObserverByWheel( DtObserver& observer, DtChannel& channel,
113  const DtMouseEvent& mouseEvent);
114  void moveObserverByWheel( DtObserver&, DtChannel&, const DtMouseEvent&);
115  void changeViewMagnificationByWheel( DtObserver&, DtChannel&,
116  const DtMouseEvent&);
117  void changeViewResolutionByWheel( DtObserver& observer,
118  DtChannel& channel, const DtMouseEvent& mouseEvent );
119  void resetMagnification( DtObserver&, DtChannel&, const DtMouseEvent&);
120 
121  void changeObserverSpeedByWheel(DtObserver& observer, DtChannel& channel,
122  const DtMouseEvent& me);
123 
124  void moveObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
125  void orbitObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
126 
127  void pickIntoScene(DtObserver&, DtChannel&, const DtMouseEvent&);
128  void rotate2DObserver(DtObserver&, double xDelta, double yDelta);
129 
131  DtElementEntry::ObjectType typeFromId( const DtUniqueID& id );
132 
133  protected:
134 
137  std::string myName;
138 
143 
148 
152 
155 
156  double myDragStartX;
157  double myDragStartY;
158  double myDragStartZ;
159 
163 
170 
172  };
173 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)