![]() |
VR-Forces 5.0.2 Developer's Guide
|
The Simple event processor will emit signals whenever a mouse or keyboard event occurs that would cause an editable object to want to be changed.
The DtBasicEditingEventProcessor is used in the case where an object of single or multiple points wants to be created or updated (see the exampleRangeLine).
This processor can be enabled for creating or for editing. If enabled for creatin will emit signals on mouse movement, altitude changes and mouse clicks. Once the creation is complete, the processor can be disabled for creating so that other processors can begin processing mouse methods
If enabled for editing, will emit the signal_dragStart when the object (signified by its selection id) is to start to be edited. The processor will then emit the locationChanged, altitudeChanged or place signals as necessary. Once placed, the processor will go out of movement mode and wait for the next double-click to start movement mode again
In either case, if right mouse click is sent, the cancel signal will be emitted

Public Attributes | |
| boost::signalslib::signal < void(DtVector, double altAboveGround)> | signal_locationChanged |
| boost::signalslib::signal< void()> | signal_cancel |
| boost::signalslib::signal < void(DtUniqueID, DtVector, double altAboveGround)> | signal_place |
| boost::signalslib::signal < void(DtVector, double)> | signal_altitudeChanged |
| boost::signalslib::signal < void(const DtSelectionManager::IdSet &, const DtVector &)> | signal_dragStart |
| boost::signalslib::signal < void(bool)> | signal_altitudeIsDragging |
Protected Member Functions | |
| virtual DtIntersector::IntersectProperties | intersectorPickMask () const |
| virtual bool | processMouseEvent (const DtMouseEvent &ev, DtChannel &channel) |
| virtual bool | processKeyboardEvent (const DtKeyEvent &ev, DtChannel &channel) |
| virtual void | processMouseMove (DtChannel &channel, const DtMouseEvent &ev) |
| virtual bool | pick (DtChannel &channel, double x, double y, DtIntersectorResult &result, DtIntersector::IntersectProperties props) const |
| virtual void | slot_coordinateSystemChanged () |
Protected Attributes | |
| DtDe & | myDe |
| DtInputDriver & | myInputDriver |
| std::string | myClassName |
| bool | myIsAltitudeDragging |
| DtVector | myCurrentGroundLocation |
| double | myCurrentAltitude |
| bool | myDragging |
| bool | myAllowDragDrop |
| double | myLastMouseX |
| double | myLastMouseY |
| double | myMousePositionX |
| double | myMousePositionY |
| double | myLastDeltaY |
| bool | myCreating |
| bool | myIgnoreNextLeftButtonRelease |
| DtIntersectorsContainer * | myIntersectors = nullptr |
| DtSignalConnectionManager | myConnections |
| DtCoordinateSystem * | myCoordinateSystem = nullptr |
Protected Attributes inherited from makVrv::DtEventProcessorInterface | |
| bool | myEnabled |
| makVrv::DtBasicEditingEventProcessor::DtBasicEditingEventProcessor | ( | DtInputDriver & | inputDriver, |
| DtDe & | de, | ||
| const std::string & | className | ||
| ) |
DTOR This class is created by the DtSimpleManager. By default, disabled. Must be enabled for creating, editing or both.
|
virtual |
CTOR.
|
virtual |
Returns the name of the processor class, to be used for identifying an event processor.
Implements makVrv::DtEventProcessorInterface.
Reimplemented in makVrf::DtVrfObjectManipulationEventProcessor, and makVrf::DtSphereEditor.
| double makVrv::DtBasicEditingEventProcessor::currentAltitude | ( | ) | const |
| void makVrv::DtBasicEditingEventProcessor::setCurrentAltitude | ( | double | ) |
| void makVrv::DtBasicEditingEventProcessor::setCurrentGroundLocation | ( | const DtVector & | ) |
|
virtual |
do the work on alt-drag
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, and makVrf::DtVrfObjectManipulationEventProcessor.
|
virtual |
change altitude with alt-mousewheel
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, and makVrf::DtVrfObjectManipulationEventProcessor.
|
virtual |
Returns true if currently in dragging mode.
|
virtual |
If true (default false) will send out signals when a drag/drop would start (based on tolerance for left mouse down and mouse move). The signal will contain the item(s) that are being dragged. The canEdit() method (default return true) will be called to make sure the items can be dragged. Override method to return false if cannot.
| bool makVrv::DtBasicEditingEventProcessor::allowDragDrop | ( | ) | const |
|
virtual |
Sets whether or not in creation mode.
Reimplemented in makVrf::DtVrfObjectManipulationEventProcessor.
| bool makVrv::DtBasicEditingEventProcessor::creating | ( | ) | const |
|
virtual |
Return true if the items can be edited (by double click if flag is true). Default is false.
Reimplemented in makVrv::DtIntervisibilityEditingEventProcessor.
|
virtual |
Return true if can still drag object (if in drag mode). Returning false will signal a cancel. The point given is in local database coordinates. Default returns true.
|
virtual |
Call to cancel current operation.
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, makVrf::DtVrfObjectManipulationEventProcessor, and makVrf::DtSphereEditor.
|
virtual |
If enabled is false and was enabled before, signal cancel. Should not call directly.
Reimplemented from makVrv::DtEventProcessorInterface.
Reimplemented in makVrf::DtVrfObjectManipulationEventProcessor.
| double makVrv::DtBasicEditingEventProcessor::mouseX | ( | ) | const |
Mouse X and Y positions as recorded the last time through the processEvent.
| double makVrv::DtBasicEditingEventProcessor::mouseY | ( | ) | const |
|
protectedvirtual |
Mask to use when picking into the scene.
Reimplemented in makVrf::DtVrfObjectManipulationEventProcessor, and makVrv::DtIntervisibilityEditingEventProcessor.
|
protectedvirtual |
Processes a mouse event on the channel. Should return true if the event is handled successfully, and false to reject it and pass it on to the next event processor.
Implements makVrv::DtEventProcessorInterface.
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, and makVrf::DtVrfObjectManipulationEventProcessor.
|
protectedvirtual |
Processes a keyboard event on the channel. Should return true if the event is handled successfully, and false to reject it and pass it on to the next event processor.
Implements makVrv::DtEventProcessorInterface.
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, and makVrf::DtVrfObjectManipulationEventProcessor.
|
protectedvirtual |
|
protectedvirtual |
Call intersector to pick into scene to get terrain intersection.
Reimplemented in makVrf::DtVrfIntervisibilityEditingEventProcessor, and makVrf::DtVrfObjectManipulationEventProcessor.
|
protectedvirtual |
slot for when the coordinate system changes
| boost::signalslib::signal<void (DtVector, double altAboveGround)> makVrv::DtBasicEditingEventProcessor::signal_locationChanged |
Signal sent when the mouse location has changed via a mouse move. Vector is in local database coordinates.
| boost::signalslib::signal<void ()> makVrv::DtBasicEditingEventProcessor::signal_cancel |
Signal sent when the user wants to cancel the operation.
| boost::signalslib::signal<void (DtUniqueID, DtVector, double altAboveGround)> makVrv::DtBasicEditingEventProcessor::signal_place |
Signal sent on left click of mouse on terrain or object. ID is the item clicked on. Vector is in local database coordinates.
| boost::signalslib::signal<void (DtVector, double)> makVrv::DtBasicEditingEventProcessor::signal_altitudeChanged |
Signal sent when the altitude has changed.
| boost::signalslib::signal<void (const DtSelectionManager::IdSet&, const DtVector&)> makVrv::DtBasicEditingEventProcessor::signal_dragStart |
Signal sent when dragging is starting.
| boost::signalslib::signal<void (bool)> makVrv::DtBasicEditingEventProcessor::signal_altitudeIsDragging |
Signal send when altitude has stopped/started changing by mouse movement.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
local clone of the system wide coordinate system. for thread safety.