|
16 | 16 | ***************************************************************************/
|
17 | 17 |
|
18 | 18 | #include "qgscoordinatetransformcontext.h"
|
| 19 | +#include "qgscoordinatetransformcontext_p.h" |
| 20 | +QgsCoordinateTransformContext::QgsCoordinateTransformContext() |
| 21 | + : d( new QgsCoordinateTransformContextPrivate() ) |
| 22 | +{} |
| 23 | + |
| 24 | +QgsCoordinateTransformContext::QgsCoordinateTransformContext( const QgsCoordinateTransformContext &rhs ) //NOLINT |
| 25 | + : d( rhs.d ) |
| 26 | +{} |
| 27 | + |
| 28 | +QgsCoordinateTransformContext &QgsCoordinateTransformContext::operator=( const QgsCoordinateTransformContext &rhs ) //NOLINT |
| 29 | +{ |
| 30 | + d = rhs.d; |
| 31 | + return *this; |
| 32 | +} |
19 | 33 |
|
20 | 34 | void QgsCoordinateTransformContext::clear()
|
21 | 35 | {
|
22 |
| - mSourceDestDatumTransforms.clear(); |
23 |
| - mSourceDatumTransforms.clear(); |
24 |
| - mDestDatumTransforms.clear(); |
| 36 | + d.detach(); |
| 37 | + d->mSourceDestDatumTransforms.clear(); |
| 38 | + d->mSourceDatumTransforms.clear(); |
| 39 | + d->mDestDatumTransforms.clear(); |
25 | 40 | }
|
26 | 41 |
|
27 | 42 | QMap<QString, int> QgsCoordinateTransformContext::sourceDatumTransforms() const
|
28 | 43 | {
|
29 |
| - return mSourceDatumTransforms; |
| 44 | + return d->mSourceDatumTransforms; |
30 | 45 | }
|
31 | 46 |
|
32 | 47 | bool QgsCoordinateTransformContext::addSourceDatumTransform( const QgsCoordinateReferenceSystem &crs, int transform )
|
33 | 48 | {
|
34 | 49 | if ( !crs.isValid() )
|
35 | 50 | return false;
|
36 | 51 |
|
| 52 | + d.detach(); |
37 | 53 | if ( transform == -1 )
|
38 | 54 | {
|
39 |
| - mSourceDatumTransforms.remove( crs.authid() ); |
| 55 | + d->mSourceDatumTransforms.remove( crs.authid() ); |
40 | 56 | return true;
|
41 | 57 | }
|
42 | 58 |
|
43 |
| - mSourceDatumTransforms.insert( crs.authid(), transform ); |
| 59 | + d->mSourceDatumTransforms.insert( crs.authid(), transform ); |
44 | 60 | return true;
|
45 | 61 | }
|
46 | 62 |
|
47 | 63 | QMap<QString, int> QgsCoordinateTransformContext::destinationDatumTransforms() const
|
48 | 64 | {
|
49 |
| - return mDestDatumTransforms; |
| 65 | + return d->mDestDatumTransforms; |
50 | 66 | }
|
51 | 67 |
|
52 | 68 | bool QgsCoordinateTransformContext::addDestinationDatumTransform( const QgsCoordinateReferenceSystem &crs, int transform )
|
53 | 69 | {
|
54 | 70 | if ( !crs.isValid() )
|
55 | 71 | return false;
|
56 | 72 |
|
| 73 | + d.detach(); |
57 | 74 | if ( transform == -1 )
|
58 | 75 | {
|
59 |
| - mDestDatumTransforms.remove( crs.authid() ); |
| 76 | + d->mDestDatumTransforms.remove( crs.authid() ); |
60 | 77 | return true;
|
61 | 78 | }
|
62 | 79 |
|
63 |
| - mDestDatumTransforms.insert( crs.authid(), transform ); |
| 80 | + d->mDestDatumTransforms.insert( crs.authid(), transform ); |
64 | 81 | return true;
|
65 | 82 | }
|
66 | 83 |
|
67 | 84 | QMap<QPair<QString, QString>, QPair<int, int> > QgsCoordinateTransformContext::sourceDestinationDatumTransforms() const
|
68 | 85 | {
|
69 |
| - return mSourceDestDatumTransforms; |
| 86 | + return d->mSourceDestDatumTransforms; |
70 | 87 | }
|
71 | 88 |
|
72 | 89 | bool QgsCoordinateTransformContext::addSourceDestinationDatumTransform( const QgsCoordinateReferenceSystem &sourceCrs, const QgsCoordinateReferenceSystem &destinationCrs, int sourceTransform, int destinationTransform )
|
73 | 90 | {
|
74 | 91 | if ( !sourceCrs.isValid() || !destinationCrs.isValid() )
|
75 | 92 | return false;
|
76 | 93 |
|
| 94 | + d.detach(); |
77 | 95 | if ( sourceTransform == -1 || destinationTransform == -1 )
|
78 | 96 | {
|
79 |
| - mSourceDestDatumTransforms.remove( qMakePair( sourceCrs.authid(), destinationCrs.authid() ) ); |
| 97 | + d->mSourceDestDatumTransforms.remove( qMakePair( sourceCrs.authid(), destinationCrs.authid() ) ); |
80 | 98 | return true;
|
81 | 99 | }
|
82 | 100 |
|
83 |
| - mSourceDestDatumTransforms.insert( qMakePair( sourceCrs.authid(), destinationCrs.authid() ), qMakePair( sourceTransform, destinationTransform ) ); |
| 101 | + d->mSourceDestDatumTransforms.insert( qMakePair( sourceCrs.authid(), destinationCrs.authid() ), qMakePair( sourceTransform, destinationTransform ) ); |
84 | 102 | return true;
|
85 | 103 | }
|
86 | 104 |
|
|
0 commit comments