16 #include <boost/optional.hpp>
26 #include <matrix/vlVector.h>
27 #include <matrix/vlQuaternion.h>
28 #include <matrix/vlTaitBryan.h>
29 #include <matrix/coordTransform.h>
30 #include <matrix/topoCoord.h>
32 #include <vlutil/vlPerformanceStats.h>
49 virtual void setCurrentHeading(
double heading );
53 virtual void setCurrentPitch(
double pitch );
56 virtual void setHeadingAllowed(
bool);
57 virtual bool headingAllowed()
const;
60 virtual void setPitchAllowed(
bool);
61 virtual bool pitchAllowed()
const;
64 virtual void setAltitudeAllowed(
bool);
65 virtual bool altitudeAllowed()
const;
68 virtual double currentHeading()
const;
71 virtual double currentPitch()
const;
73 virtual const std::string& className()
override;
76 virtual void setEnabled(
bool)
override;
79 virtual void setEditing(
bool);
82 virtual void setCreating(
bool)
override;
84 virtual void setAllowEventDefer(
bool);
87 return myAllowEventDefer;
91 virtual void setIgnoreNextLeftButtonRelease(
bool b);
92 virtual void setEditStartedByDoubleClick(
bool b);
96 virtual void setDragTolerance(
int);
97 virtual int dragTolerance()
const;
101 virtual void setFreehand(
bool);
102 virtual bool freehand()
const;
106 void setDragToleranceTime(
double);
107 double dragToleranceTime()
const;
110 virtual void setIgnoreList(
const std::vector<makVrv::DtElementID>&);
111 const std::vector<makVrv::DtElementID>& ignoreList()
const;
115 virtual void setEmbarkationAllowed(
bool);
116 virtual bool embarkationAllowed()
const;
127 virtual bool isShiftKeyDown()
const;
128 virtual bool isControlKeyDown()
const;
129 virtual bool isFunctionKeyDown()
const;
130 virtual bool isAltKeyDown()
const;
131 virtual bool isLeftMouseButtonDown()
const;
132 virtual bool isRightMouseButtonDown()
const;
133 virtual bool isMiddleMouseButtonDown()
const;
147 virtual void changeHeading(
double mouseX,
double mouseY,
bool snapToGrid =
false );
148 virtual void changePitch(
double mouseX,
double mouseY,
bool snapToGrid =
false );
149 virtual void changeAltitude(
double mouseX,
double mouseY,
bool snapToGrid =
false );
155 virtual void cleanupTerrainDraggingVaraibles();
161 virtual void changeAltitudeWithWheel(
int wheelSteps)
override;
164 virtual void changeHeadingWithWheel(
int wheelSteps );
167 virtual void changePitchWithWheel(
int wheelSteps );
169 virtual void cancel(
bool escPressed);
170 virtual void cancel()
override;
175 virtual void setupLastSnapData();
176 virtual void setupSnapTransforms();
180 virtual void executeDeferredMouseMoveEvent();
182 virtual DtTaitBryan worldOrientation()
const;
221 int myAltitudeDragCounter = 0;
225 bool needsInitialization =
true;
229 double checkAltitude = 0.;
230 double currentAltitude = 0.;
269 virtual void changeAltitudeWithWheel(
int wheelSteps)
override;
271 virtual void cancel()
override;
277 virtual void changeAltitude(
double mouseX,
double mouseY)
override;
279 virtual bool isAltKeyDown()
const;
280 virtual bool isLeftMouseButtonDown()
const;
281 virtual bool isRightMouseButtonDown()
const;
282 virtual bool isMiddleMouseButtonDown()
const;
makVrv::DtSignalConnectionManager myConnections
Definition: vrfObjectManipulationEventProcessor.h:192
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
boost::signals2::signal< void(double)> signal_pitchChanged
signal that the pitch of the object has changed
Definition: vrfObjectManipulationEventProcessor.h:122
bool myIsHeadingDragging
Definition: vrfObjectManipulationEventProcessor.h:189
Manage the tick and mouse events when editing or placing a Vrf object.
Definition: vrfObjectManipulationEventProcessor.h:37
bool allowEventDefer() const
Definition: vrfObjectManipulationEventProcessor.h:85
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
bool myRightMouseButtonDown
Definition: vrfObjectManipulationEventProcessor.h:220
int myAltitudePositionY
Definition: vrfObjectManipulationEventProcessor.h:286
This class encapsulates a Key event.
Definition: DtKeyEvent.h:16
bool myHeadingAllowed
Definition: vrfObjectManipulationEventProcessor.h:186
!!!!!!!!!!
Definition: vrfObjectManipulationEventProcessor.h:259
Descriptor for a single intersection result.
Definition: DtIntersectorResult.h:21
int myAltitudePositionX
Definition: vrfObjectManipulationEventProcessor.h:285
The Simple event processor will emit signals whenever a mouse or keyboard event occurs that would cau...
Definition: DtBasicEditingEventProcessor.h:48
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
bool mySetAtLeastOneEvent
Definition: vrfObjectManipulationEventProcessor.h:210
DtVector myObserverLocation
Definition: vrfObjectManipulationEventProcessor.h:208
DtTaitBryan myCurrentOrientation
Definition: vrfObjectManipulationEventProcessor.h:185
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
SnapData myLastSnap
Definition: vrfObjectManipulationEventProcessor.h:238
bool myIgnoreNextMouseMove
Definition: vrfObjectManipulationEventProcessor.h:288
KeyModifier
Describe which modifier(s) are pressed.
Definition: DtKeyState.h:136
bool myAllowEventDefer
Definition: vrfObjectManipulationEventProcessor.h:211
bool myDeferMouseMoveEvents
Controls whether mouse move events will be executed immediately or saved.
Definition: vrfObjectManipulationEventProcessor.h:219
Definition: vrfObjectManipulationEventProcessor.h:223
boost::signals2::signal< void(bool)> signal_cancel
Definition: vrfObjectManipulationEventProcessor.h:124
bool myObserverEventProcessorWasEnabled
Definition: vrfObjectManipulationEventProcessor.h:287
bool myObserverEventProcessorWasEnabled
Definition: vrfObjectManipulationEventProcessor.h:205
The abstract Channel Class.
Definition: DtChannel.h:35
DtVector myStartingMousePosition
Definition: vrfObjectManipulationEventProcessor.h:201
DtVector myStartPoint
Definition: vrfObjectManipulationEventProcessor.h:193
boost::signals2::signal< void(double)> signal_headingChanged
signal that the heading of the object has changed
Definition: vrfObjectManipulationEventProcessor.h:119
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtMouseEvent myLastMouseEvent
Definition: vrfObjectManipulationEventProcessor.h:209
bool myPitchAllowed
Definition: vrfObjectManipulationEventProcessor.h:187
bool myFreehand
Definition: vrfObjectManipulationEventProcessor.h:199
This file contains the declaration for the class DtMouseEvent.
Definition: vrfObjectManipulationEventProcessor.h:241
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Definition: vrfObjectManipulationEventProcessor.h:291
bool myEditStartedByDoubleClick
Definition: vrfObjectManipulationEventProcessor.h:206
bool myAltitudeAllowed
Definition: vrfObjectManipulationEventProcessor.h:188
double myDragTime
Definition: vrfObjectManipulationEventProcessor.h:196
Contains the DtIntervisibilityEditingEventProcessor class declaration.
DtCoordTransform topoToGeocTransform
Definition: vrfObjectManipulationEventProcessor.h:234
bool myAllowEditing
Definition: vrfObjectManipulationEventProcessor.h:198
bool myEmbarkationAllowed
Definition: vrfObjectManipulationEventProcessor.h:202
bool myIgnoreLeftMouseDown
Definition: vrfObjectManipulationEventProcessor.h:204
The DtIntervisibilityEditingEventProcessor is overriding to support the canEdit method to determine i...
Definition: DtIntervisibilityEditingEventProcessor.h:24
This file contains the declaration for the class DtKeyEvent.
DtTimedSection myDragTimer
Definition: vrfObjectManipulationEventProcessor.h:197
bool myIsPitchDragging
Definition: vrfObjectManipulationEventProcessor.h:190
Base class to provide boost signal/slot management.
bool myIgnoreNextLeftButtonRelease
Definition: vrfObjectManipulationEventProcessor.h:203
DtCoordTransform geocToTopoTransform
Definition: vrfObjectManipulationEventProcessor.h:233
DtTaitBryan currentOrientation
Definition: vrfObjectManipulationEventProcessor.h:227
int myDragTolerance
Definition: vrfObjectManipulationEventProcessor.h:194
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::vector< makVrv::DtElementID > myIgnoreList
Definition: vrfObjectManipulationEventProcessor.h:200
bool myMouseDragging
Definition: vrfObjectManipulationEventProcessor.h:191
boost::optional< makVrv::DtMouseEvent > mySavedMouseMoveEvent
Linux produces many mouse move events during a tick.
Definition: vrfObjectManipulationEventProcessor.h:217
Creator for the intervisibility event processor.
Definition: DtIntervisibilityEditingEventProcessor.h:54
bool myIsLastEventProcessing
Definition: vrfObjectManipulationEventProcessor.h:207
DtVector currentGroundLocation
Definition: vrfObjectManipulationEventProcessor.h:232
double myDragToleranceTime
Definition: vrfObjectManipulationEventProcessor.h:195
DtTaitBryan checkOrientation
Definition: vrfObjectManipulationEventProcessor.h:226