\hypertarget{coordinateoperation__internal_8hpp_source}{}\doxysection{coordinateoperation\+\_\+internal.\+hpp}
\label{coordinateoperation__internal_8hpp_source}\index{src/iso19111/operation/coordinateoperation\_internal.hpp@{src/iso19111/operation/coordinateoperation\_internal.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/******************************************************************************}}
\DoxyCodeLine{2 \textcolor{comment}{ *}}
\DoxyCodeLine{3 \textcolor{comment}{ * Project:  PROJ}}
\DoxyCodeLine{4 \textcolor{comment}{ * Purpose:  ISO19111:2019 implementation}}
\DoxyCodeLine{5 \textcolor{comment}{ * Author:   Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{6 \textcolor{comment}{ *}}
\DoxyCodeLine{7 \textcolor{comment}{ ******************************************************************************}}
\DoxyCodeLine{8 \textcolor{comment}{ * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>}}
\DoxyCodeLine{9 \textcolor{comment}{ *}}
\DoxyCodeLine{10 \textcolor{comment}{ * Permission is hereby granted, free of charge, to any person obtaining a}}
\DoxyCodeLine{11 \textcolor{comment}{ * copy of this software and associated documentation files (the "{}Software"{}),}}
\DoxyCodeLine{12 \textcolor{comment}{ * to deal in the Software without restriction, including without limitation}}
\DoxyCodeLine{13 \textcolor{comment}{ * the rights to use, copy, modify, merge, publish, distribute, sublicense,}}
\DoxyCodeLine{14 \textcolor{comment}{ * and/or sell copies of the Software, and to permit persons to whom the}}
\DoxyCodeLine{15 \textcolor{comment}{ * Software is furnished to do so, subject to the following conditions:}}
\DoxyCodeLine{16 \textcolor{comment}{ *}}
\DoxyCodeLine{17 \textcolor{comment}{ * The above copyright notice and this permission notice shall be included}}
\DoxyCodeLine{18 \textcolor{comment}{ * in all copies or substantial portions of the Software.}}
\DoxyCodeLine{19 \textcolor{comment}{ *}}
\DoxyCodeLine{20 \textcolor{comment}{ * THE SOFTWARE IS PROVIDED "{}AS IS"{}, WITHOUT WARRANTY OF ANY KIND, EXPRESS}}
\DoxyCodeLine{21 \textcolor{comment}{ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,}}
\DoxyCodeLine{22 \textcolor{comment}{ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL}}
\DoxyCodeLine{23 \textcolor{comment}{ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER}}
\DoxyCodeLine{24 \textcolor{comment}{ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING}}
\DoxyCodeLine{25 \textcolor{comment}{ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER}}
\DoxyCodeLine{26 \textcolor{comment}{ * DEALINGS IN THE SOFTWARE.}}
\DoxyCodeLine{27 \textcolor{comment}{ ****************************************************************************/}}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{preprocessor}{\#ifndef FROM\_PROJ\_CPP}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#error This file should only be included from a PROJ cpp file}}
\DoxyCodeLine{31 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{32 }
\DoxyCodeLine{33 \textcolor{preprocessor}{\#ifndef COORDINATEOPERATION\_INTERNAL\_HH\_INCLUDED}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#define COORDINATEOPERATION\_INTERNAL\_HH\_INCLUDED}}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{preprocessor}{\#include "{}proj/coordinateoperation.hpp"{}}}
\DoxyCodeLine{37 }
\DoxyCodeLine{38 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{39 }
\DoxyCodeLine{41 }
\DoxyCodeLine{42 NS\_PROJ\_START}
\DoxyCodeLine{43 }
\DoxyCodeLine{44 \textcolor{keyword}{namespace }operation \{}
\DoxyCodeLine{45 }
\DoxyCodeLine{46 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{47 }
\DoxyCodeLine{48 \textcolor{keywordtype}{bool} isAxisOrderReversal(\textcolor{keywordtype}{int} methodEPSGCode);}
\DoxyCodeLine{49 }
\DoxyCodeLine{50 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{51 }
\DoxyCodeLine{52 \textcolor{keyword}{class }InverseCoordinateOperation;}
\DoxyCodeLine{54 \textcolor{keyword}{using} InverseCoordinateOperationPtr =}
\DoxyCodeLine{55     std::shared\_ptr<InverseCoordinateOperation>;}
\DoxyCodeLine{57 \textcolor{keyword}{using} InverseCoordinateOperationNNPtr = util::nn<InverseCoordinateOperationPtr>;}
\DoxyCodeLine{58 }
\DoxyCodeLine{64 \textcolor{keyword}{class }InverseCoordinateOperation : \textcolor{keyword}{virtual} \textcolor{keyword}{public} CoordinateOperation \{}
\DoxyCodeLine{65   \textcolor{keyword}{public}:}
\DoxyCodeLine{66     InverseCoordinateOperation(}
\DoxyCodeLine{67         \textcolor{keyword}{const} CoordinateOperationNNPtr \&forwardOperationIn,}
\DoxyCodeLine{68         \textcolor{keywordtype}{bool} wktSupportsInversion);}
\DoxyCodeLine{69 }
\DoxyCodeLine{70     \string~InverseCoordinateOperation() \textcolor{keyword}{override};}
\DoxyCodeLine{71 }
\DoxyCodeLine{72     \textcolor{keywordtype}{void} \_exportToPROJString(io::PROJStringFormatter *formatter)}
\DoxyCodeLine{73         \textcolor{keyword}{const override}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{74 }
\DoxyCodeLine{75     \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{76         \textcolor{keyword}{const} util::IComparable *other,}
\DoxyCodeLine{77         util::IComparable::Criterion criterion =}
\DoxyCodeLine{78             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{79         \textcolor{keyword}{const} io::DatabaseContextPtr \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{80 }
\DoxyCodeLine{81     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} inverse() \textcolor{keyword}{const override};}
\DoxyCodeLine{82 }
\DoxyCodeLine{83     \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} \&forwardOperation()\textcolor{keyword}{ const }\{}
\DoxyCodeLine{84         \textcolor{keywordflow}{return} forwardOperation\_;}
\DoxyCodeLine{85     \}}
\DoxyCodeLine{86 }
\DoxyCodeLine{87   \textcolor{keyword}{protected}:}
\DoxyCodeLine{88     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} forwardOperation\_;}
\DoxyCodeLine{89     \textcolor{keywordtype}{bool} wktSupportsInversion\_;}
\DoxyCodeLine{90 }
\DoxyCodeLine{91     \textcolor{keywordtype}{void} setPropertiesFromForward();}
\DoxyCodeLine{92 \};}
\DoxyCodeLine{93 }
\DoxyCodeLine{94 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{95 }
\DoxyCodeLine{97 \textcolor{keyword}{class }InverseConversion : \textcolor{keyword}{public} Conversion, \textcolor{keyword}{public} InverseCoordinateOperation \{}
\DoxyCodeLine{98   \textcolor{keyword}{public}:}
\DoxyCodeLine{99     \textcolor{keyword}{explicit} InverseConversion(\textcolor{keyword}{const} ConversionNNPtr \&forward);}
\DoxyCodeLine{100 }
\DoxyCodeLine{101     \string~InverseConversion() \textcolor{keyword}{override};}
\DoxyCodeLine{102 }
\DoxyCodeLine{103     \textcolor{keywordtype}{void} \_exportToWKT(io::WKTFormatter *formatter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{104         Conversion::\_exportToWKT(formatter);}
\DoxyCodeLine{105     \}}
\DoxyCodeLine{106 }
\DoxyCodeLine{107     \textcolor{keywordtype}{void} \_exportToJSON(io::JSONFormatter *formatter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{108         Conversion::\_exportToJSON(formatter);}
\DoxyCodeLine{109     \}}
\DoxyCodeLine{110 }
\DoxyCodeLine{111     \textcolor{keywordtype}{void}}
\DoxyCodeLine{112     \_exportToPROJString(io::PROJStringFormatter *formatter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{113         InverseCoordinateOperation::\_exportToPROJString(formatter);}
\DoxyCodeLine{114     \}}
\DoxyCodeLine{115 }
\DoxyCodeLine{116     \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{117         \textcolor{keyword}{const} util::IComparable *other,}
\DoxyCodeLine{118         util::IComparable::Criterion criterion =}
\DoxyCodeLine{119             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{120         \textcolor{keyword}{const} io::DatabaseContextPtr \&dbContext = \textcolor{keyword}{nullptr})\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{121         \textcolor{keywordflow}{return} InverseCoordinateOperation::\_isEquivalentTo(other, criterion,}
\DoxyCodeLine{122                                                            dbContext);}
\DoxyCodeLine{123     \}}
\DoxyCodeLine{124 }
\DoxyCodeLine{125     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} inverse()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{126         \textcolor{keywordflow}{return} InverseCoordinateOperation::inverse();}
\DoxyCodeLine{127     \}}
\DoxyCodeLine{128 }
\DoxyCodeLine{129     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a4cec974a8b9f98f8567889e5ad653f5c}{ConversionNNPtr}} inverseAsConversion() \textcolor{keyword}{const};}
\DoxyCodeLine{130 }
\DoxyCodeLine{131 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{132     \textcolor{comment}{// To avoid a warning C4250: 'osgeo::proj::operation::InverseConversion':}}
\DoxyCodeLine{133     \textcolor{comment}{// inherits}}
\DoxyCodeLine{134     \textcolor{comment}{// 'osgeo::proj::operation::SingleOperation::osgeo::proj::operation::SingleOperation::gridsNeeded'}}
\DoxyCodeLine{135     \textcolor{comment}{// via dominance}}
\DoxyCodeLine{136     std::set<GridDescription>}
\DoxyCodeLine{137     gridsNeeded(\textcolor{keyword}{const} io::DatabaseContextPtr \&databaseContext,}
\DoxyCodeLine{138                 \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{139         \textcolor{keywordflow}{return} SingleOperation::gridsNeeded(databaseContext,}
\DoxyCodeLine{140                                             considerKnownGridsAsAvailable);}
\DoxyCodeLine{141     \}}
\DoxyCodeLine{142 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{143 }
\DoxyCodeLine{144     \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} create(\textcolor{keyword}{const} ConversionNNPtr \&forward);}
\DoxyCodeLine{145 }
\DoxyCodeLine{146     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} \_shallowClone() \textcolor{keyword}{const override};}
\DoxyCodeLine{147 \};}
\DoxyCodeLine{148 }
\DoxyCodeLine{149 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{150 }
\DoxyCodeLine{152 \textcolor{keyword}{class }InverseTransformation : \textcolor{keyword}{public} Transformation,}
\DoxyCodeLine{153                               \textcolor{keyword}{public} InverseCoordinateOperation \{}
\DoxyCodeLine{154   \textcolor{keyword}{public}:}
\DoxyCodeLine{155     \textcolor{keyword}{explicit} InverseTransformation(\textcolor{keyword}{const} TransformationNNPtr \&forward);}
\DoxyCodeLine{156 }
\DoxyCodeLine{157     \string~InverseTransformation() \textcolor{keyword}{override};}
\DoxyCodeLine{158 }
\DoxyCodeLine{159     \textcolor{keywordtype}{void} \_exportToWKT(io::WKTFormatter *formatter) \textcolor{keyword}{const override};}
\DoxyCodeLine{160 }
\DoxyCodeLine{161     \textcolor{keywordtype}{void}}
\DoxyCodeLine{162     \_exportToPROJString(io::PROJStringFormatter *formatter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{163         \textcolor{keywordflow}{return} InverseCoordinateOperation::\_exportToPROJString(formatter);}
\DoxyCodeLine{164     \}}
\DoxyCodeLine{165 }
\DoxyCodeLine{166     \textcolor{keywordtype}{void} \_exportToJSON(io::JSONFormatter *formatter)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{167         Transformation::\_exportToJSON(formatter);}
\DoxyCodeLine{168     \}}
\DoxyCodeLine{169 }
\DoxyCodeLine{170     \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{171         \textcolor{keyword}{const} util::IComparable *other,}
\DoxyCodeLine{172         util::IComparable::Criterion criterion =}
\DoxyCodeLine{173             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{174         \textcolor{keyword}{const} io::DatabaseContextPtr \&dbContext = \textcolor{keyword}{nullptr})\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{175         \textcolor{keywordflow}{return} InverseCoordinateOperation::\_isEquivalentTo(other, criterion,}
\DoxyCodeLine{176                                                            dbContext);}
\DoxyCodeLine{177     \}}
\DoxyCodeLine{178 }
\DoxyCodeLine{179     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} inverse()\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{180         \textcolor{keywordflow}{return} InverseCoordinateOperation::inverse();}
\DoxyCodeLine{181     \}}
\DoxyCodeLine{182 }
\DoxyCodeLine{183     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a7da9ca138b1bf3c761df3355e064d5ca}{TransformationNNPtr}} inverseAsTransformation() \textcolor{keyword}{const};}
\DoxyCodeLine{184 }
\DoxyCodeLine{185 \textcolor{preprocessor}{\#ifdef \_MSC\_VER}}
\DoxyCodeLine{186     \textcolor{comment}{// To avoid a warning C4250:}}
\DoxyCodeLine{187     \textcolor{comment}{// 'osgeo::proj::operation::InverseTransformation': inherits}}
\DoxyCodeLine{188     \textcolor{comment}{// 'osgeo::proj::operation::SingleOperation::osgeo::proj::operation::SingleOperation::gridsNeeded'}}
\DoxyCodeLine{189     \textcolor{comment}{// via dominance}}
\DoxyCodeLine{190     std::set<GridDescription>}
\DoxyCodeLine{191     gridsNeeded(\textcolor{keyword}{const} io::DatabaseContextPtr \&databaseContext,}
\DoxyCodeLine{192                 \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable)\textcolor{keyword}{ const override }\{}
\DoxyCodeLine{193         \textcolor{keywordflow}{return} SingleOperation::gridsNeeded(databaseContext,}
\DoxyCodeLine{194                                             considerKnownGridsAsAvailable);}
\DoxyCodeLine{195     \}}
\DoxyCodeLine{196 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{197 }
\DoxyCodeLine{198     \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a7da9ca138b1bf3c761df3355e064d5ca}{TransformationNNPtr}} create(\textcolor{keyword}{const} TransformationNNPtr \&forward);}
\DoxyCodeLine{199 }
\DoxyCodeLine{200     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} \_shallowClone() \textcolor{keyword}{const override};}
\DoxyCodeLine{201 \};}
\DoxyCodeLine{202 }
\DoxyCodeLine{203 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{204 }
\DoxyCodeLine{205 \textcolor{keyword}{class }PROJBasedOperation;}
\DoxyCodeLine{207 \textcolor{keyword}{using} PROJBasedOperationPtr = std::shared\_ptr<PROJBasedOperation>;}
\DoxyCodeLine{209 \textcolor{keyword}{using} PROJBasedOperationNNPtr = util::nn<PROJBasedOperationPtr>;}
\DoxyCodeLine{210 }
\DoxyCodeLine{213 \textcolor{keyword}{class }PROJBasedOperation : \textcolor{keyword}{public} SingleOperation \{}
\DoxyCodeLine{214   \textcolor{keyword}{public}:}
\DoxyCodeLine{215     \string~PROJBasedOperation() \textcolor{keyword}{override};}
\DoxyCodeLine{216 }
\DoxyCodeLine{217     \textcolor{keywordtype}{void} \_exportToWKT(io::WKTFormatter *formatter)}
\DoxyCodeLine{218         \textcolor{keyword}{const override}; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{219 }
\DoxyCodeLine{220     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} inverse() \textcolor{keyword}{const override};}
\DoxyCodeLine{221 }
\DoxyCodeLine{222     \textcolor{keyword}{static} PROJBasedOperationNNPtr}
\DoxyCodeLine{223     create(\textcolor{keyword}{const} util::PropertyMap \&properties, \textcolor{keyword}{const} std::string \&PROJString,}
\DoxyCodeLine{224            \textcolor{keyword}{const} crs::CRSPtr \&sourceCRS, \textcolor{keyword}{const} crs::CRSPtr \&targetCRS,}
\DoxyCodeLine{225            \textcolor{keyword}{const} std::vector<metadata::PositionalAccuracyNNPtr> \&accuracies);}
\DoxyCodeLine{226 }
\DoxyCodeLine{227     \textcolor{keyword}{static} PROJBasedOperationNNPtr}
\DoxyCodeLine{228     create(\textcolor{keyword}{const} util::PropertyMap \&properties,}
\DoxyCodeLine{229            \textcolor{keyword}{const} io::IPROJStringExportableNNPtr \&projExportable, \textcolor{keywordtype}{bool} inverse,}
\DoxyCodeLine{230            \textcolor{keyword}{const} crs::CRSNNPtr \&sourceCRS, \textcolor{keyword}{const} crs::CRSNNPtr \&targetCRS,}
\DoxyCodeLine{231            \textcolor{keyword}{const} crs::CRSPtr \&interpolationCRS,}
\DoxyCodeLine{232            \textcolor{keyword}{const} std::vector<metadata::PositionalAccuracyNNPtr> \&accuracies,}
\DoxyCodeLine{233            \textcolor{keywordtype}{bool} hasRoughTransformation);}
\DoxyCodeLine{234 }
\DoxyCodeLine{235     std::set<GridDescription>}
\DoxyCodeLine{236     gridsNeeded(\textcolor{keyword}{const} io::DatabaseContextPtr \&databaseContext,}
\DoxyCodeLine{237                 \textcolor{keywordtype}{bool} considerKnownGridsAsAvailable) \textcolor{keyword}{const override};}
\DoxyCodeLine{238 }
\DoxyCodeLine{239   \textcolor{keyword}{protected}:}
\DoxyCodeLine{240     PROJBasedOperation(\textcolor{keyword}{const} PROJBasedOperation \&) = \textcolor{keywordflow}{default};}
\DoxyCodeLine{241     \textcolor{keyword}{explicit} PROJBasedOperation(\textcolor{keyword}{const} OperationMethodNNPtr \&methodIn);}
\DoxyCodeLine{242 }
\DoxyCodeLine{243     \textcolor{keywordtype}{void} \_exportToPROJString(io::PROJStringFormatter *formatter)}
\DoxyCodeLine{244         \textcolor{keyword}{const override}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{245 }
\DoxyCodeLine{246     \textcolor{keywordtype}{void} \_exportToJSON(io::JSONFormatter *formatter)}
\DoxyCodeLine{247         \textcolor{keyword}{const override}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{248 }
\DoxyCodeLine{249     \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{CoordinateOperationNNPtr}} \_shallowClone() \textcolor{keyword}{const override};}
\DoxyCodeLine{250 }
\DoxyCodeLine{251     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{252 }
\DoxyCodeLine{253   \textcolor{keyword}{private}:}
\DoxyCodeLine{254     std::string projString\_\{\};}
\DoxyCodeLine{255     io::IPROJStringExportablePtr projStringExportable\_\{\};}
\DoxyCodeLine{256     \textcolor{keywordtype}{bool} inverse\_ = \textcolor{keyword}{false};}
\DoxyCodeLine{257 \};}
\DoxyCodeLine{258 }
\DoxyCodeLine{259 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{260 }
\DoxyCodeLine{261 \textcolor{keyword}{class }InvalidOperationEmptyIntersection : \textcolor{keyword}{public} InvalidOperation \{}
\DoxyCodeLine{262   \textcolor{keyword}{public}:}
\DoxyCodeLine{263     \textcolor{keyword}{explicit} InvalidOperationEmptyIntersection(\textcolor{keyword}{const} std::string \&message);}
\DoxyCodeLine{264     InvalidOperationEmptyIntersection(}
\DoxyCodeLine{265         \textcolor{keyword}{const} InvalidOperationEmptyIntersection \&other);}
\DoxyCodeLine{266     \string~InvalidOperationEmptyIntersection() \textcolor{keyword}{override};}
\DoxyCodeLine{267 \};}
\DoxyCodeLine{268 \} \textcolor{comment}{// namespace operation}}
\DoxyCodeLine{269 }
\DoxyCodeLine{270 NS\_PROJ\_END}
\DoxyCodeLine{271 }
\DoxyCodeLine{273 }
\DoxyCodeLine{274 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// COORDINATEOPERATION\_INTERNAL\_HH\_INCLUDED}}

\end{DoxyCode}
