VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectManipulationEventProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
15 #include <boost/signal.hpp>
16 #include <boost/optional.hpp>
17 
21 
22 #include <vrvCore/DtUniqueID.h>
23 #include <vrvCore/DtMouseEvent.h>
24 
25 #include <matrix/vlVector.h>
26 #include <matrix/vlQuaternion.h>
27 
28 #include <vlutil/vlPerformanceStats.h>
29 
30 namespace makVrf
31 {
35  {
36  public:
38  DtVrfObjectManipulationEventProcessor( makVrv::DtDe&, const std::string& driverName = "DtVrfObjectManipulationEventProcessor" );
39 
42 
45  virtual void setCurrentHeading( double heading );
46 
48  virtual void setHeadingAllowed(bool);
49  virtual bool headingAllowed() const;
50 
52  virtual void setAltitudeAllowed(bool);
53  virtual bool altitudeAllowed() const;
54 
56  virtual double currentHeading() const;
57 
58  virtual const std::string& className();
59 
61  virtual void setEnabled(bool);
62 
64  virtual void setEditing(bool);
65 
67  virtual void setCreating(bool);
68 
70  virtual void setIgnoreNextLeftButtonRelease(bool b);
71  virtual void setEditStartedByDoubleClick(bool b);
72 
75  virtual void setDragTolerance(int);
76  virtual int dragTolerance() const;
77 
80  virtual void setFreehand(bool);
81  virtual bool freehand() const;
82 
85  void setDragToleranceTime(double);
86  double dragToleranceTime() const;
87 
89  virtual void setIgnoreList(const std::vector<makVrv::DtElementID>&);
90  const std::vector<makVrv::DtElementID>& ignoreList() const;
91 
94  virtual void setEmbarkationAllowed(bool);
95  virtual bool embarkationAllowed() const;
96 
98  boost::signal<void ( double )> signal_headingChanged;
99 
100  boost::signal<void (bool)> signal_cancel;
101 
103  virtual bool isShiftKeyDown() const;
104  virtual bool isControlKeyDown() const;
105  virtual bool isAltKeyDown() const;
106 
107  protected:
108  virtual makVrv::DtIntersector::IntersectProperties intersectorPickMask() const;
109 
111  virtual bool processMouseEvent(const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel);
112 
113  virtual bool processKeyboardEvent(const makVrv::DtKeyEvent& ev,
114  makVrv::DtChannel& channel);
115 
117  virtual void changeHeading( double mouseX, double mouseY );
118  virtual void changeAltitude( double mouseX, double mouseY );
119 
120  virtual bool pick(makVrv::DtChannel& channel, double x, double y, makVrv::DtIntersectorResult& result,
122 
123  virtual void cleanupTerrainDraggingVaraibles();
124 
126  virtual bool placePoint(makVrv::DtChannel& channel, const makVrv::DtMouseEvent&);
127 
129  virtual void changeAltitudeWithWheel( int wheelSteps );
130 
132  virtual void changeHeadingWithWheel( int wheelSteps );
133 
134  virtual void cancel(bool escPressed);
135  virtual void cancel();
136 
137  virtual void startHeadingDrag(const makVrv::DtMouseEvent&, makVrv::DtChannel& channel);
138  virtual void startAltitudeDrag(const makVrv::DtMouseEvent&, makVrv::DtChannel& channel);
139 
140  virtual void tick();
141 
142  virtual void executeDeferredMouseMoveEvent();
143 
144  protected:
154  double myDragTime;
155  DtTimedSection myDragTimer;
158  std::vector<makVrv::DtElementID> myIgnoreList;
172 
176  boost::optional<makVrv::DtMouseEvent> mySavedMouseMoveEvent;
179  };
180 
183  {
184 
185  public:
189 
191  static void registerInstance( makVrv::DtDe& de,
193 
196  };
197 
200  {
201  public:
203  DtVrfIntervisibilityEditingEventProcessor(makVrv::DtInputDriver& inputDriver, makVrv::DtDe& de, const std::string& className);
204 
207 
209  virtual void changeAltitudeWithWheel( int wheelSteps );
210  virtual void startAltitudeDrag(const makVrv::DtMouseEvent&, makVrv::DtChannel& channel);
211  virtual void cancel();
212 
213  protected:
214  virtual bool processMouseEvent( const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel);
215  virtual bool pick(makVrv::DtChannel& channel, double x, double y, makVrv::DtIntersectorResult& result,
217  virtual void changeAltitude( double mouseX, double mouseY );
218  virtual bool processKeyboardEvent(const makVrv::DtKeyEvent& ev, makVrv::DtChannel& channel);
219  virtual bool isAltKeyDown() const;
220 
221  protected:
226  };
227 
229  {
230  public:
232  };
233 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)