summaryrefslogtreecommitdiff
path: root/src/positioning/qdoublevector2d_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Make QGeoProjectionWebMercator use a projection matrixPaolo Angelelli2017-01-231-0/+8
| | | | | | | | | | | This patch changes the way QGeoProjectionWebMercator implements its operations -to and -from screen coordinates. By using a double matrix 4x4 instead of only scaling and shifting this will make it possible to convert coordinates also in presence of bearing and tilting != 0 Change-Id: I6a74a9675a7ad397ec6ad32f4274f897aa7694b1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Updated license headersAntti Kokko2016-01-201-14/+20
| | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Iaee1a5fd53291752a1891710ee375ca32778b142 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Update contact URL in all license headers to qt.ioAlex Blasche2015-02-181-1/+1
| | | | | Change-Id: Ia1e333be7fec8898de609d9b9303b1ad7687632e Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Update BSD and LGPLv2.1 licensesAlex Blasche2015-02-181-3/+3
| | | | | | | | - Removes subsidiary extension from Qt Company - Replaces remaining occurrences of Digia in BSD and LGPLv2.1 Change-Id: I7467a6744af7d1c3aef3c29118f219399162a18c Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Update all LGPLv2.1 license headers in source to latest versionAlex Blasche2015-02-151-4/+4
| | | | | | | | | | | This affects all QtPositioning related code and the test code in the entire repository. The Qt Company is set as new copyright owner and the copyright year is bumped to 2015. Change-Id: Iee0e990680683c20f5920e49cc1063ea9349e2cd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Export QDoubleVector?D streaming operatorsAlex Blasche2015-01-271-3/+3
| | | | | | | | This was missing during a previous debugging session. Change-Id: I9b78b88ffcffa0ae0a327ee82f57e9b754af2a65 Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Update license headers and add new license filesAntti Kokko2014-08-241-18/+10
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Iedee2507ab1bd46788409a98505d7be510253110 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Merge branch 'stable' into devAlex Blasche2014-05-051-1/+1
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf src/src.pro Change-Id: Ibc0a58c565aec37fb09b96e27309f50892340cac
| * Remove unnecessary private export macroAlex Blasche2014-04-241-1/+1
| | | | | | | | | | | | | | | | This was discovered during a header review of Qt 5.3. Change-Id: Id852deb6fb5eadb43e643ac25e3b52dad7f7dd59 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
* | Remove QDoubleVector*d symbols only needed by QtLocationAlex Blasche2014-04-101-5/+1
|/ | | | | | | | | It causes random linker errors on Windows. Now the conversions are done manually. Task-number: QTBUG-37785 Change-Id: I5586b314d1f55a75464920f23a23f77a08b45d89 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix compilation with Clang on MacOS.Alex Blasche2013-12-031-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang does not like methods to be declared static inline, and then have their definition somewhere else. The error message was: ./qdoublevector2d_p.h:186:49: error: conflicting types for 'dotProduct' Q_DECL_CONSTEXPR inline double QDoubleVector2D::dotProduct(const QDoubleVector2D &v1, const QDoubleVector2D &v2) ^ ./qdoublevector2d_p.h:101:43: note: previous declaration is here Q_DECL_CONSTEXPR static inline double dotProduct(const QDoubleVector2D &v1, const QDoubleVector2D &v2); ^ In file included from qgeocircle.cpp:49: ./qdoublevector3d_p.h:234:49: error: conflicting types for 'dotProduct' Q_DECL_CONSTEXPR inline double QDoubleVector3D::dotProduct(const QDoubleVector3D &v1, const QDoubleVector3D &v2) ^ ./qdoublevector3d_p.h:104:43: note: previous declaration is here Q_DECL_CONSTEXPR static inline double dotProduct(const QDoubleVector3D &v1, const QDoubleVector3D &v2); ^ ./qdoublevector3d_p.h:239:58: error: conflicting types for 'crossProduct' Q_DECL_CONSTEXPR inline QDoubleVector3D QDoubleVector3D::crossProduct(const QDoubleVector3D &v1, const QDoubleVector3D &v2) ^ ./qdoublevector3d_p.h:105:52: note: previous declaration is here Q_DECL_CONSTEXPR static inline QDoubleVector3D crossProduct(const QDoubleVector3D &v1, const QDoubleVector3D &v2); Change-Id: Ica9305f628c393e3d37e19097ad7343c03e68ef7 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Add constexpr to Vector classesAlex Blasche2013-11-201-45/+58
| | | | | | | | | | | | | | | | This turns code like QDoublVector2D(1,1) into a compile-time expression when using a C++11 compiler. Since these classes are private some member functions were converted into inlines to make maximum use of constexpr. Keyword inline was added where function declaration was not exhibiting the keyword but the declaration was using it. Under certain circumstances this can prevent potential export/import issues on some compilers. Change-Id: I1b35b03942c5939fbafe2819fc875ef96eacaf02 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Fix ambiguous type conversion options (QPointF vs QDoubleVector)Alex Blasche2013-11-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qdeclarativegeomapgesturearea.cpp: In member function 'void QDeclarativeGeoMapGestureArea::startTwoTouchPoints()': qdeclarativegeomapgesturearea.cpp:834:66: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: [enabled by default] QPointF startPos = (sceneStartPoint1_ + sceneStartPoint2_) * 0.5; ^ In file included from /home/ablasche/dev/qt/androidqt/qtbase/include/QtCore/qpoint.h:1:0, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtCore/../../src/corelib/tools/qrect.h:46, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtCore/qrect.h:1, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtGui/../../src/gui/painting/qregion.h:46, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtGui/qregion.h:1, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtGui/../../src/gui/kernel/qevent.h:47, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtGui/qevent.h:1, from /home/ablasche/dev/qt/androidqt/qtbase/include/QtGui/QTouchEvent:1, from qdeclarativegeomapgesturearea_p.h:46, from qdeclarativegeomapgesturearea.cpp:42: /home/ablasche/dev/qt/androidqt/qtbase/include/QtCore/../../src/corelib/tools/qpoint.h:357:39: note: candidate 1: constexpr const QPointF operator*(const QPointF&, qreal) Q_DECL_CONSTEXPR inline const QPointF operator*(const QPointF &p, qreal c) ^ In file included from /home/ablasche/dev/qt/androidqt/qtbase/include/QtPositioning/5.3.0/QtPositioning/private/qdoublevector2d_p.h:1:0, from ../../location/maps/qgeomap_p.h:59, from qdeclarativegeomap_p.h:73, from qdeclarativegeomapgesturearea.cpp:43: /home/ablasche/dev/qt/androidqt/qtbase/include/QtPositioning/5.3.0/QtPositioning/private/../../../../../../qtlocation/src/positioning/qdoublevector2d_p.h:208:30: note: candidate 2: const QDoubleVector2D operator*(const QDoubleVector2D&, double) inline const QDoubleVector2D operator*(const QDoubleVector2D &vector, double factor) ^ Change-Id: Ic9f56a14f5222b54f24443f3546b97f88a3dcf53 Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Always use double point precision for geo lookups internallyErik Mattsson2013-11-061-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | This patch is to remedy rounding errors on ARM devices where qreal is defined as a float instead of double. The main change is to replace QPointF with QDoubleVector2D when using screenPositionToCoordinate and coordinateToScreenPosition. In many cases the QDoubleVector2D is converted to QPointF when the increased precision is not used. This because many of the surounding classes uses qreal so the precsision would be lost anyway. These classes include QVectorPath, QPainterPath and QQuickItem. The most important change is in polyline and polygon map item in the updateSourcePoints methods. Using floating point precision here resulted in many precision errors that caused for example route lines to be chopped of as the method erroneously thought it needed to wrap to the other side of the datum line. The external uses of the coordinate lookup functions in declarative geo map has been left untouched so they still use QPointF for compatibility reasons. Not sure how the process goes when updating externally visible parts of the API Change-Id: I01ed67a0563cfb5c4ff2db6395b7a62eaa8e4a19 Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
* Make geo coordinates animatable in QML.Albin Olsson2013-10-111-0/+236
Interpolation logic in AnimatableCoordinate has been moved around so that QGeoCoordinates can be animated directly by QPropertyAnimation. A new QML type has been added, 'CoordinateAnimation', for animating coordinates in QML. This type follows the pattern of 'ColorAnimation' and other specializations of 'PropertyAnimation'. QDoubleVector2D, QDoubleVector3D and QGeoProjection has been moved to QtPositioning Testcase for CoordinateAnimation has been added to declarative_ui. AnimatableCoordinate and QGeoCoordinateInterpolator are redundant and have been removed. Change-Id: I0809da566e1800274384f9c5337df65623d1e61a Reviewed-by: Alex Blasche <alexander.blasche@digia.com>