Add geographic coordinates to mouse picking functions

This commit is contained in:
Dan Paulat 2024-01-02 00:45:15 -06:00
parent 6e04e1fab3
commit a2f2181f1b
19 changed files with 72 additions and 42 deletions

View file

@ -57,7 +57,8 @@ bool DrawItem::RunMousePicking(
const QMapLibreGL::CustomLayerRenderParameters& /* params */,
const QPointF& /* mouseLocalPos */,
const QPointF& /* mouseGlobalPos */,
const glm::vec2& /* mouseCoords */)
const glm::vec2& /* mouseCoords */,
const common::Coordinate& /* mouseGeoCoords */)
{
// By default, the draw item is not picked
return false;

View file

@ -1,6 +1,7 @@
#pragma once
#include <scwx/qt/gl/gl.hpp>
#include <scwx/common/geographic.hpp>
#include <memory>
@ -41,14 +42,16 @@ public:
* @param [in] mouseLocalPos Mouse cursor widget position
* @param [in] mouseGlobalPos Mouse cursor screen position
* @param [in] mouseCoords Mouse cursor location in map screen coordinates
* @param [in] mouseGeoCoords Mouse cursor location in geographic coordinates
*
* @return true if the draw item was picked, otherwise false
*/
virtual bool
RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords);
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords,
const common::Coordinate& mouseGeoCoords);
protected:
void

View file

@ -794,7 +794,8 @@ bool GeoIcons::RunMousePicking(
const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& /* mouseLocalPos */,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords)
const glm::vec2& mouseCoords,
const common::Coordinate& /* mouseGeoCoords */)
{
std::unique_lock lock {p->iconMutex_};

View file

@ -38,9 +38,10 @@ public:
void Deinitialize() override;
bool RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords) override;
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords,
const common::Coordinate& mouseGeoCoords) override;
/**
* Sets the visibility of the geo icons.

View file

@ -688,7 +688,8 @@ bool PlacefileIcons::RunMousePicking(
const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& /* mouseLocalPos */,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords)
const glm::vec2& mouseCoords,
const common::Coordinate& /* mouseGeoCoords */)
{
std::unique_lock lock {p->iconMutex_};

View file

@ -36,9 +36,10 @@ public:
void Deinitialize() override;
bool RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords) override;
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords,
const common::Coordinate& mouseGeoCoords) override;
/**
* Resets and prepares the draw item for adding a new set of icons.

View file

@ -499,7 +499,8 @@ bool PlacefileLines::RunMousePicking(
const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& /* mouseLocalPos */,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords)
const glm::vec2& mouseCoords,
const common::Coordinate& /* mouseGeoCoords */)
{
std::unique_lock lock {p->lineMutex_};

View file

@ -33,9 +33,10 @@ public:
void Deinitialize() override;
bool RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords) override;
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords,
const common::Coordinate& mouseGeoCoords) override;
/**
* Resets and prepares the draw item for adding a new set of lines.

View file

@ -241,7 +241,8 @@ bool PlacefileText::RunMousePicking(
const QMapLibreGL::CustomLayerRenderParameters& /* params */,
const QPointF& /* mouseLocalPos */,
const QPointF& mouseGlobalPos,
const glm::vec2& /* mouseCoords */)
const glm::vec2& /* mouseCoords */,
const common::Coordinate& /* mouseGeoCoords */)
{
bool itemPicked = false;

View file

@ -38,9 +38,10 @@ public:
void Deinitialize() override;
bool RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params,
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords) override;
const QPointF& mouseLocalPos,
const QPointF& mouseGlobalPos,
const glm::vec2& mouseCoords,
const common::Coordinate& mouseGeoCoords) override;
/**
* Resets and prepares the draw item for adding a new set of text.