21 Commits

Author SHA1 Message Date
Nyall Dawson
25c3e135b0 Move datum transform structs out to their own header, to avoid
need to include private header file
2017-12-18 21:19:02 +10:00
Nyall Dawson
69c3debfc0 Nicer API for datum transforms
Instead of using QPairs of ints, use more descriptive structs, also
rename a lot of datum related methods for clarity and add docs
2017-12-15 14:16:59 +10:00
Nyall Dawson
f55da4affb Update unit tests 2017-12-15 14:14:47 +10:00
Nyall Dawson
670858d81c Fix some transforms missing transform context 2017-12-15 14:14:47 +10:00
Denis Rouzaud
e303f746e1 ifdef 0 single source/destination transforms 2017-12-15 14:14:47 +10:00
Nyall Dawson
86d9492372 Remove context-unaware QgsCoordinateTransform constructors from Python bindings
This forces Python code and plugins to become datum transform
aware, and given that upgrading python code is easy (just
add QgsProject.instance() as a new argument to the constructor)
it's relatively painless to force this on PyQGIS users.

Also fix upgrade the easy QgsCoordinateTransform c++ constructors
where the project is available, or where using QgsProject::instance()
is safe to do.

For others, just avoid the deprecated warnings until we can
get access to the correct project instance where the transform
is being constructed.
2017-12-15 14:13:22 +10:00
Nyall Dawson
5131258b08 QgsCoordinateTransformContext is implicitly shared 2017-12-15 14:11:38 +10:00
Nyall Dawson
705416c489 More consistent exception throwing in QgsCoordinateTransform::transformBoundingBox
Depending on the os and proj versions, we weren't always getting an
exception when a bad bounding box transform was made. So now we
explicitly check the result, and if everything was invalid
then we also throw an exception.

This makes the behavior consistent across different platforms,
and fixes running the provider tests on non Travis platforms
(highly likely also fixes various issues encountered while running
QGIS)
2017-11-19 16:17:30 +10:00
Nyall Dawson
700f9b2ef8 Condense qgstestutils.h and qgstest.h into a single file 2017-09-04 10:38:18 +10:00
Nyall Dawson
21a3b8a4f3 Use QGSCOMPARENEAR instead of QVERIFY( qgsDoubleNear(... ) )
QGSCOMPARENEAR gives better debugging output when the
test fails
2017-08-29 12:39:59 +10:00
Matthias Kuhn
dfd9833467 Let all tests work with a proper QgsApplication instance 2016-12-20 01:20:08 +01:00
Nyall Dawson
ffa9b9b676 API breaks and cleanups for QgsCoordinateTransform
- isInitialised() has been renamed to isValid()
- theCRS parameter in setSourceCrs has been renamed to 'crs'
- setDestCRS() has been renamed to setDestinationCrs() for consistency
- destCRS() has been renamed to destinationCrs() for consistency
- theSource, theDest, theSourceSrsId, theDestSrsId, theSourceWkt,
theDestWkt, theSourceCRSType parameters in the QgsCoordinateTransform
constructors have been renamed to source, destination, sourceSrsId,
destinationSrsId, sourceWkt, destinationWkt, sourceCrsType respectively
- 'p' argument in transform() has been renamed to 'point', 'theRect' to
'rectangle', 'poly' to 'polygon'
- setDestCRSID has been removed, use setDestinationCrs() instead
- 'theNode', 'theDoc' parameters in readXML and writeXML have been
renamed to 'node' and 'document' respectively
- readXML() and writeXML() have been renamed to readXml() and writeXml()
for consistency
2016-07-16 16:33:04 +10:00
Nyall Dawson
736aab195f Make QgsCoordinateTransform implicitly shared, no longer a QObject
There was no code in core using the signals/slots associated with
QgsCoordinateTransform, and little reason to keep the class a
QObject. Making it not a QObject simplifies code and allows
QgsCoordinateTransform objects to be easily copied and passed
around without complication.
2016-07-16 10:07:10 +10:00
Denis Rouzaud
9e3183c63f Revert "sort includes"
This reverts commit 2b7d3d3c73b50ba6dc74abec6dd652ff1b87c0ec.
2015-06-10 14:54:47 +02:00
Juergen E. Fischer
4e86109398 indentation update 2015-06-10 14:51:53 +02:00
Denis Rouzaud
2b7d3d3c73 sort includes 2015-06-10 13:59:08 +02:00
Nyall Dawson
7f2fac15dc Add some more test mask images
Also some debugging info for tests failing on certain platforms.
2015-02-19 16:24:11 +11:00
Matthias Kuhn
95f6483855 Fix some race condition segfaults of tests on exit 2014-11-21 11:45:32 +01:00
Matthias Kuhn
78c519546a Add Qt5 support 2014-11-21 11:45:32 +01:00
Matthias Kuhn
1c2bdf1ea3 Switch tests to automoc
Required for Qt5 compatibility
Raises minimum CMake version to 2.8.6
2014-11-04 09:18:26 +01:00
Nyall Dawson
a2d5acb516 Add argument to QgsCoordinateTransform::transformBoundingBox to flag that
handling of a bounding box which crosses the 180 degree longitude line
is required. Fix composer map reprojected grids which cross 180 degree line.
2014-10-02 06:48:53 +10:00