Newer
Older
#include <QMap>
#include <QTimer>
class UASWaypointManager;
class Waypoint;
pixhawk
committed
typedef mapcontrol::WayPointItem WayPointItem;
/**
* @brief Class representing a 2D map using aerial imagery
*/
{
Q_OBJECT
public:
explicit QGCMapWidget(QWidget *parent = 0);
// /** @brief Convert meters to pixels */
// float metersToPixels(double meters);
// double headingP1P2(internals::PointLatLng p1, internals::PointLatLng p2);
// internals::PointLatLng targetLatLon(internals::PointLatLng source, double heading, double dist);
void homePositionChanged(double latitude, double longitude, double altitude);
pixhawk
committed
/** @brief Signal for newly created map waypoints */
void waypointCreated(Waypoint* wp);
void waypointChanged(Waypoint* wp);
/** @brief Add system to map view */
/** @brief Update the global position of a system */
void updateGlobalPosition(UASInterface* uas, double lat, double lon, double alt, quint64 usec);
/** @brief Update the global position of all systems */
void updateGlobalPosition();
/** @brief Update the type, size, etc. of this system */
void updateSystemSpecs(int uas);
/** @brief Change current system in focus / editing */
void activeUASSet(UASInterface* uas);
/** @brief Show a dialog to jump to given GPS coordinates */
void showGoToDialog();
/** @brief Jump to the home position on the map */
void goHome();
/** @brief Update this waypoint for this UAS */
void updateWaypoint(int uas, Waypoint* wp);
/** @brief Update the whole waypoint */
void updateWaypointList(int uas);
/** @brief Update the home position on the map */
void updateHomePosition(double latitude, double longitude, double altitude);
/** @brief Set update rate limit */
void setUpdateRateLimit(float seconds);
void loadSettings();
void storeSettings();
pixhawk
committed
protected slots:
/** @brief Convert a map edit into a QGC waypoint event */
void handleMapWaypointEdit(WayPointItem* waypoint);
/** @brief Update the highlighting of the currently controlled system */
void updateSelectedSystem(int uas);
/** @brief Initialize */
void showEvent(QShowEvent* event);
void hideEvent(QHideEvent* event);
void mouseDoubleClickEvent(QMouseEvent* event);
UASWaypointManager* currWPManager; ///< The current waypoint manager
QMap<Waypoint* , mapcontrol::WayPointItem*> waypointsToIcons;
QMap<mapcontrol::WayPointItem*, Waypoint*> iconsToWaypoints;
pixhawk
committed
Waypoint* firingWaypointChange;
QTimer updateTimer;
float maxUpdateInterval;
enum editMode {
EDIT_MODE_NONE,
EDIT_MODE_WAYPOINTS,
EDIT_MODE_SWEEP,
EDIT_MODE_UAVS,
EDIT_MODE_HOME,
EDIT_MODE_SAFE_AREA,
EDIT_MODE_CACHING
};
editMode currEditMode; ///< The current edit mode on the map