VR-Forces 4.1 Class Documentation
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 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtInputDriver;
23  class DtObserver;
24  class DtIntersectorResult;
25 
30  {
31  public:
32 
34  DtObserverEventProcessor(DtInputDriver& inputDriver, DtDe& de);
35 
37  virtual ~DtObserverEventProcessor();
38 
39  bool isMouseLooking() const;
40  bool isTerrainDragging() const;
41  bool isTerrainOrbitDragging() const;
42  bool isViewDragging() const;
43 
49  void getHiddenMousePosition( int& mouseX, int& mouseY );
50 
54  virtual bool processMouseEvent( const DtMouseEvent& ev, DtChannel& channel);
55 
59  virtual bool processKeyboardEvent( const DtKeyEvent& ev, DtChannel& channel);
60 
63  virtual const std::string& className();
64 
66  void processRightClickOnSelection( DtChannel& channel,
67  const DtUniqueID& objectId, const DtMouseState& mouseState );
68 
71  static bool isJumpToEvent( DtMouseEvent::EventType mouseEventType,
73 
76  static bool isAttachToEvent( DtMouseEvent::EventType mouseEventType,
78 
79  protected:
80 
81  void processObjectMousedOn( DtObserver& observer, DtChannel& channel,
82  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
83 
84  void processTerrainMousedOn( DtObserver& observer, DtChannel& channel,
85  const DtMouseEvent& mouseEvent, const DtIntersectorResult& isectResult);
86 
87  void showMouse( DtChannel& channel );
88  void hideMouse( DtChannel& channel, const DtMouseEvent& mouseEvent );
89 
90  //View drag behavior
91  void viewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
92  void startViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
93  void continueViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
94  void stopViewDrag(DtObserver&, DtChannel&, const DtMouseEvent& );
95 
96  //Mouse look behavior
97  void mouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
98  void startMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
99  void continueMouseLook( DtObserver&, DtChannel&, const DtMouseEvent& );
100  void stopMouseLook(DtObserver&, DtChannel&, const DtMouseEvent& );
101 
102  //Terrain drag behavior
103  void dragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
104  void startDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
105  void continueDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
106  void stopDragTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
107 
108  void scrollLevelObserverByWheel( DtObserver& observer, DtChannel& channel,
109  const DtMouseEvent& mouseEvent);
110  void moveObserverByWheel( DtObserver&, DtChannel&, const DtMouseEvent&);
111  void changeViewMagnificationByWheel( DtObserver&, DtChannel&,
112  const DtMouseEvent&);
113  void changeViewResolutionByWheel( DtObserver& observer,
114  DtChannel& channel, const DtMouseEvent& mouseEvent );
115  void resetMagnification( DtObserver&, DtChannel&, const DtMouseEvent&);
116 
117  void changeObserverSpeedByWheel(DtObserver& observer, DtChannel& channel,
118  const DtMouseEvent& me);
119 
120  void moveObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent& );
121  void orbitObserverOverTerrain( DtObserver&, DtChannel&, const DtMouseEvent&);
122 
123  void pickIntoScene(DtObserver&, DtChannel&, const DtMouseEvent&);
124  void rotate2DObserver(DtObserver&, double xDelta, double yDelta);
125 
127  DtElementEntry::ObjectType typeFromId( const DtUniqueID& id );
128 
129  protected:
130 
133  std::string myName;
134 
138 
143 
147 
150 
151  double myDragStartX;
152  double myDragStartY;
153  double myDragStartZ;
154 
158 
165  };
166 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)