QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
Loading...
Searching...
No Matches
qgscoordinatetransformcontext_p.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscoordinatetransformcontext_p.h
3 -------------------------------
4 begin : November 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSCOORDINATETRANSFORMCONTEXT_PRIVATE_H
19#define QGSCOORDINATETRANSFORMCONTEXT_PRIVATE_H
20
22
23//
24// W A R N I N G
25// -------------
26//
27// This file is not part of the QGIS API. It exists purely as an
28// implementation detail. This header file may change from version to
29// version without notice, or even be removed.
30//
31
32/***************************************************************************
33 * This class is considered CRITICAL and any change MUST be accompanied with
34 * full unit tests in testqgsfeature.cpp.
35 * See details in QEP #17
36 ****************************************************************************/
37
38
40#include "qgsdatumtransform.h"
41
42#define SIP_NO_FILE
43
44class QgsCoordinateTransformContextPrivate : public QSharedData
45{
46 public:
47 QgsCoordinateTransformContextPrivate() = default;
48
49 QgsCoordinateTransformContextPrivate( const QgsCoordinateTransformContextPrivate &other )
50 : QSharedData( other )
51 , mLock {}
52 {
53 other.mLock.lockForRead();
54 mSourceDestDatumTransforms = other.mSourceDestDatumTransforms;
55 other.mLock.unlock();
56 }
57
61 class OperationDetails
62 {
63 public:
64 QString operation;
65 bool allowFallback = true;
66
67 // TODO c++20 - replace with = default
68 bool operator==( const OperationDetails &other ) const { return operation == other.operation && allowFallback == other.allowFallback; }
69 };
70 QMap< QPair< QgsCoordinateReferenceSystem, QgsCoordinateReferenceSystem >, OperationDetails > mSourceDestDatumTransforms;
71
73 mutable QReadWriteLock mLock {};
74
75 private:
76 QgsCoordinateTransformContextPrivate &operator=( const QgsCoordinateTransformContextPrivate & ) = delete;
77};
78
79
81
82
83#endif // QGSCOORDINATETRANSFORMCONTEXT_PRIVATE_H
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)