17#ifndef QGSCOORDINATETRANSFORMPRIVATE_H
18#define QGSCOORDINATETRANSFORMPRIVATE_H
38typedef struct PJconsts
PJ;
44class QgsCoordinateTransformPrivate :
public QSharedData
47 explicit QgsCoordinateTransformPrivate();
53 QgsCoordinateTransformPrivate(
const QgsCoordinateTransformPrivate &other );
55 ~QgsCoordinateTransformPrivate();
65 ProjData threadLocalProjData();
67 int mAvailableOpCount = -1;
68 ProjData threadLocalFallbackProjData();
71 bool removeObjectsBelongingToCurrentThread(
void *pj_context );
77 bool mIsValid =
false;
83 bool mShortCircuit =
false;
86 bool mGeographicToWebMercator =
false;
89 bool mHasVerticalComponent =
false;
97 Q_DECL_DEPRECATED QString mSourceProjString;
98 Q_DECL_DEPRECATED QString mDestProjString;
100 Q_DECL_DEPRECATED
int mSourceDatumTransform = -1;
101 Q_DECL_DEPRECATED
int mDestinationDatumTransform = -1;
102 QString mProjCoordinateOperation;
103 bool mShouldReverseCoordinateOperation =
false;
104 bool mAllowFallbackTransforms =
true;
106 bool mSourceIsDynamic =
false;
107 bool mDestIsDynamic =
false;
108 double mSourceCoordinateEpoch = std::numeric_limits< double >::quiet_NaN();
109 double mDestCoordinateEpoch = std::numeric_limits< double >::quiet_NaN();
110 double mDefaultTime = std::numeric_limits< double >::quiet_NaN();
113 bool mIsReversed =
false;
115 QReadWriteLock mProjLock;
116 QMap< uintptr_t, ProjData > mProjProjections;
117 QMap< uintptr_t, ProjData > mProjFallbackProjections;
126 static void setCustomMissingRequiredGridHandler(
141 static void setCustomMissingPreferredGridHandler(
142 const std::function<
void(
154 static void setCustomCoordinateOperationCreationErrorHandler(
165 static void setCustomMissingGridUsedByContextHandler(
182 static std::function<
184 sMissingPreferredGridHandler;
189 sMissingGridUsedByContextHandler;
193 QgsCoordinateTransformPrivate &operator=(
const QgsCoordinateTransformPrivate & ) =
delete;
Represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.