\hypertarget{common_8hpp_source}{}\doxysection{common.\+hpp}
\label{common_8hpp_source}\index{include/proj/common.hpp@{include/proj/common.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 COMMON\_HH\_INCLUDED}}
\DoxyCodeLine{30 \textcolor{preprocessor}{\#define COMMON\_HH\_INCLUDED}}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#include <string>}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 \textcolor{preprocessor}{\#include "{}io.hpp"{}}}
\DoxyCodeLine{37 \textcolor{preprocessor}{\#include "{}metadata.hpp"{}}}
\DoxyCodeLine{38 \textcolor{preprocessor}{\#include "{}util.hpp"{}}}
\DoxyCodeLine{39 }
\DoxyCodeLine{40 NS\_PROJ\_START}
\DoxyCodeLine{41 }
\DoxyCodeLine{46 \textcolor{keyword}{namespace }common \{}
\DoxyCodeLine{47 }
\DoxyCodeLine{48 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{49 }
\DoxyCodeLine{50 \textcolor{keyword}{class }UnitOfMeasure;}
\DoxyCodeLine{52 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_aaceb0025e7d31df0fc219145b6a59908}{UnitOfMeasurePtr}} = std::shared\_ptr<UnitOfMeasure>;}
\DoxyCodeLine{54 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{UnitOfMeasureNNPtr}} = util::nn<UnitOfMeasurePtr>;}
\DoxyCodeLine{55 }
\DoxyCodeLine{60 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}} \{}
\DoxyCodeLine{61   \textcolor{keyword}{public}:}
\DoxyCodeLine{63     \textcolor{keyword}{enum class} PROJ\_MSVC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure_a400c71b5a6d7927e3e5850cee2b07d10}{Type}} \{}
\DoxyCodeLine{65         UNKNOWN,}
\DoxyCodeLine{67         NONE,}
\DoxyCodeLine{69         ANGULAR,}
\DoxyCodeLine{71         LINEAR,}
\DoxyCodeLine{73         SCALE,}
\DoxyCodeLine{75         TIME,}
\DoxyCodeLine{77         PARAMETRIC,}
\DoxyCodeLine{78     \};}
\DoxyCodeLine{79 }
\DoxyCodeLine{80     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}}(}
\DoxyCodeLine{81         \textcolor{keyword}{const} std::string \&nameIn = std::string(), \textcolor{keywordtype}{double} toSIIn = 1.0,}
\DoxyCodeLine{82         Type typeIn = Type::UNKNOWN,}
\DoxyCodeLine{83         \textcolor{keyword}{const} std::string \&codeSpaceIn = std::string(),}
\DoxyCodeLine{84         \textcolor{keyword}{const} std::string \&codeIn = std::string());}
\DoxyCodeLine{85 }
\DoxyCodeLine{87     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other);}
\DoxyCodeLine{88     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{\string~UnitOfMeasure}}() \textcolor{keyword}{override};}
\DoxyCodeLine{89     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other);}
\DoxyCodeLine{90     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&operator=(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&\&other);}
\DoxyCodeLine{91     PROJ\_INTERNAL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_abd72c7d84f852c41c7c2a528f8fa1d62}{UnitOfMeasureNNPtr}} create(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other);}
\DoxyCodeLine{93 }
\DoxyCodeLine{94     PROJ\_DLL \textcolor{keyword}{const} std::string \&name() PROJ\_PURE\_DECL;}
\DoxyCodeLine{95     PROJ\_DLL \textcolor{keywordtype}{double} conversionToSI() PROJ\_PURE\_DECL;}
\DoxyCodeLine{96     PROJ\_DLL Type type() PROJ\_PURE\_DECL;}
\DoxyCodeLine{97 }
\DoxyCodeLine{98     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&codeSpace() PROJ\_PURE\_DECL;}
\DoxyCodeLine{99     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&code() PROJ\_PURE\_DECL;}
\DoxyCodeLine{100 }
\DoxyCodeLine{101     PROJ\_DLL \textcolor{keywordtype}{bool} operator==(const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other) PROJ\_PURE\_DECL;}
\DoxyCodeLine{102     PROJ\_DLL \textcolor{keywordtype}{bool} operator!=(const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other) PROJ\_PURE\_DECL;}
\DoxyCodeLine{103 }
\DoxyCodeLine{105     PROJ\_INTERNAL \textcolor{keywordtype}{void} \_exportToWKT(io::WKTFormatter *formatter,}
\DoxyCodeLine{106                                     const std::\textcolor{keywordtype}{string} \&unitType = std::\textcolor{keywordtype}{string}())}
\DoxyCodeLine{107         const; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{108 }
\DoxyCodeLine{109     PROJ\_INTERNAL \textcolor{keywordtype}{void} \_exportToJSON(}
\DoxyCodeLine{110         io::JSONFormatter *formatter) const; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{111 }
\DoxyCodeLine{112     PROJ\_INTERNAL std::\textcolor{keywordtype}{string} exportToPROJString() const;}
\DoxyCodeLine{113 }
\DoxyCodeLine{114     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{115     \_isEquivalentTo(const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&other,}
\DoxyCodeLine{116                     util::IComparable::Criterion criterion =}
\DoxyCodeLine{117                         util::IComparable::Criterion::STRICT) const;}
\DoxyCodeLine{118 }
\DoxyCodeLine{120 }
\DoxyCodeLine{121     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} NONE;}
\DoxyCodeLine{122 }
\DoxyCodeLine{123     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} SCALE\_UNITY;}
\DoxyCodeLine{124     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} PARTS\_PER\_MILLION;}
\DoxyCodeLine{125     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} PPM\_PER\_YEAR;}
\DoxyCodeLine{126 }
\DoxyCodeLine{127     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} METRE;}
\DoxyCodeLine{128     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} METRE\_PER\_YEAR;}
\DoxyCodeLine{129     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} FOOT;}
\DoxyCodeLine{130     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} US\_FOOT;}
\DoxyCodeLine{131 }
\DoxyCodeLine{132     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} RADIAN;}
\DoxyCodeLine{133     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} MICRORADIAN;}
\DoxyCodeLine{134     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} DEGREE;}
\DoxyCodeLine{135     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} ARC\_SECOND;}
\DoxyCodeLine{136     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} GRAD;}
\DoxyCodeLine{137     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} ARC\_SECOND\_PER\_YEAR;}
\DoxyCodeLine{138 }
\DoxyCodeLine{139     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} SECOND;}
\DoxyCodeLine{140     PROJ\_DLL static const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} YEAR;}
\DoxyCodeLine{141 }
\DoxyCodeLine{142   private:}
\DoxyCodeLine{143     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{144 \};}
\DoxyCodeLine{145 }
\DoxyCodeLine{146 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{147 }
\DoxyCodeLine{149 class \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} : public util::BaseObject \{}
\DoxyCodeLine{150   \textcolor{keyword}{public}:}
\DoxyCodeLine{151     \textcolor{comment}{// cppcheck-\/suppress noExplicitConstructor}}
\DoxyCodeLine{152     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}}(\textcolor{keywordtype}{double} valueIn = 0.0,}
\DoxyCodeLine{153                      \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&unitIn = \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}}());}
\DoxyCodeLine{154 }
\DoxyCodeLine{156     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other);}
\DoxyCodeLine{157     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{\string~Measure}}();}
\DoxyCodeLine{159 }
\DoxyCodeLine{160     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&unit() PROJ\_PURE\_DECL;}
\DoxyCodeLine{161     PROJ\_DLL \textcolor{keywordtype}{double} getSIValue() PROJ\_PURE\_DECL;}
\DoxyCodeLine{162     PROJ\_DLL \textcolor{keywordtype}{double} value() PROJ\_PURE\_DECL;}
\DoxyCodeLine{163 }
\DoxyCodeLine{164     PROJ\_DLL \textcolor{keywordtype}{double}}
\DoxyCodeLine{165     convertToUnit(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&otherUnit) PROJ\_PURE\_DECL;}
\DoxyCodeLine{166 }
\DoxyCodeLine{167     PROJ\_DLL \textcolor{keywordtype}{bool} operator==(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other) PROJ\_PURE\_DECL;}
\DoxyCodeLine{168 }
\DoxyCodeLine{170     \textcolor{keyword}{static} \textcolor{keyword}{constexpr} \textcolor{keywordtype}{double} DEFAULT\_MAX\_REL\_ERROR = 1e-\/10;}
\DoxyCodeLine{171 }
\DoxyCodeLine{172     PROJ\_INTERNAL \textcolor{keywordtype}{bool}}
\DoxyCodeLine{173     \_isEquivalentTo(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other,}
\DoxyCodeLine{174                     \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{175                         util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{176                     \textcolor{keywordtype}{double} maxRelativeError = DEFAULT\_MAX\_REL\_ERROR) \textcolor{keyword}{const};}
\DoxyCodeLine{177 }
\DoxyCodeLine{178   \textcolor{keyword}{private}:}
\DoxyCodeLine{179     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{180     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{181 \};}
\DoxyCodeLine{182 }
\DoxyCodeLine{183 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{184 }
\DoxyCodeLine{186 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \{}
\DoxyCodeLine{187   \textcolor{keyword}{public}:}
\DoxyCodeLine{188     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}}(\textcolor{keywordtype}{double} valueIn = 0.0);}
\DoxyCodeLine{189     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}}(\textcolor{keywordtype}{double} valueIn, \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&unitIn);}
\DoxyCodeLine{190 }
\DoxyCodeLine{192     \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other) : \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}}(other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a1b2926e6a57a707558e6e5da7adcbc7b}{value}}(), other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a84349190613af54346aa622258500a83}{unit}}()) \{\}}
\DoxyCodeLine{193     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}} \&other);}
\DoxyCodeLine{194     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{\string~Scale}}() \textcolor{keyword}{override};}
\DoxyCodeLine{196 }
\DoxyCodeLine{197   \textcolor{keyword}{protected}:}
\DoxyCodeLine{198     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}});}
\DoxyCodeLine{199     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Scale}{Scale}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{200 \};}
\DoxyCodeLine{201 }
\DoxyCodeLine{202 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{203 }
\DoxyCodeLine{205 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \{}
\DoxyCodeLine{206   \textcolor{keyword}{public}:}
\DoxyCodeLine{207     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}}(\textcolor{keywordtype}{double} valueIn = 0.0);}
\DoxyCodeLine{208     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}}(\textcolor{keywordtype}{double} valueIn, \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&unitIn);}
\DoxyCodeLine{209 }
\DoxyCodeLine{211     \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other) : \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}}(other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a1b2926e6a57a707558e6e5da7adcbc7b}{value}}(), other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a84349190613af54346aa622258500a83}{unit}}()) \{\}}
\DoxyCodeLine{212     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}} \&other);}
\DoxyCodeLine{213     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{\string~Angle}}() \textcolor{keyword}{override};}
\DoxyCodeLine{215 }
\DoxyCodeLine{216   \textcolor{keyword}{protected}:}
\DoxyCodeLine{217     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}});}
\DoxyCodeLine{218     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Angle}{Angle}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{219 \};}
\DoxyCodeLine{220 }
\DoxyCodeLine{221 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{222 }
\DoxyCodeLine{224 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \{}
\DoxyCodeLine{225   \textcolor{keyword}{public}:}
\DoxyCodeLine{226     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}}(\textcolor{keywordtype}{double} valueIn = 0.0);}
\DoxyCodeLine{227     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}}(\textcolor{keywordtype}{double} valueIn, \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1UnitOfMeasure}{UnitOfMeasure}} \&unitIn);}
\DoxyCodeLine{228 }
\DoxyCodeLine{230     \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&other)}
\DoxyCodeLine{231         : \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}}(other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a1b2926e6a57a707558e6e5da7adcbc7b}{value}}(), other.\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure_a84349190613af54346aa622258500a83}{unit}}()) \{\}}
\DoxyCodeLine{232     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}} \&other);}
\DoxyCodeLine{233     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{\string~Length}}() \textcolor{keyword}{override};}
\DoxyCodeLine{235 }
\DoxyCodeLine{236   \textcolor{keyword}{protected}:}
\DoxyCodeLine{237     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}});}
\DoxyCodeLine{238     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Length}{Length}} \&) = \textcolor{keyword}{delete};}
\DoxyCodeLine{239 \};}
\DoxyCodeLine{240 }
\DoxyCodeLine{241 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{242 }
\DoxyCodeLine{245 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}} \{}
\DoxyCodeLine{246   \textcolor{keyword}{public}:}
\DoxyCodeLine{248     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}} \&other);}
\DoxyCodeLine{249     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{\string~DateTime}}();}
\DoxyCodeLine{251 }
\DoxyCodeLine{252     PROJ\_DLL \textcolor{keywordtype}{bool} isISO\_8601() \textcolor{keyword}{const};}
\DoxyCodeLine{253     PROJ\_DLL std::string toString() \textcolor{keyword}{const};}
\DoxyCodeLine{254 }
\DoxyCodeLine{255     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}}}
\DoxyCodeLine{256     create(\textcolor{keyword}{const} std::string \&str); \textcolor{comment}{// may throw Exception}}
\DoxyCodeLine{257 }
\DoxyCodeLine{258   \textcolor{keyword}{protected}:}
\DoxyCodeLine{259     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}}();}
\DoxyCodeLine{260     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}});}
\DoxyCodeLine{261     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}} \&other);}
\DoxyCodeLine{262 }
\DoxyCodeLine{263   \textcolor{keyword}{private}:}
\DoxyCodeLine{264     \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DateTime}{DateTime}}(\textcolor{keyword}{const} std::string \&str);}
\DoxyCodeLine{265 }
\DoxyCodeLine{266     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{267 \};}
\DoxyCodeLine{268 }
\DoxyCodeLine{269 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{270 }
\DoxyCodeLine{272 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}} \{}
\DoxyCodeLine{273   \textcolor{keyword}{public}:}
\DoxyCodeLine{275     PROJ\_DLL \textcolor{keyword}{explicit} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&coordinateEpochIn);}
\DoxyCodeLine{276     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}} \&other);}
\DoxyCodeLine{277     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{\string~DataEpoch}}();}
\DoxyCodeLine{279 }
\DoxyCodeLine{280     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{Measure}} \&coordinateEpoch() \textcolor{keyword}{const};}
\DoxyCodeLine{281 }
\DoxyCodeLine{282   \textcolor{keyword}{protected}:}
\DoxyCodeLine{283     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}}();}
\DoxyCodeLine{284     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}});}
\DoxyCodeLine{285 }
\DoxyCodeLine{286   \textcolor{keyword}{private}:}
\DoxyCodeLine{287     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1DataEpoch}{DataEpoch}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{288     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{289 \};}
\DoxyCodeLine{290 }
\DoxyCodeLine{291 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{292 }
\DoxyCodeLine{293 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}};}
\DoxyCodeLine{295 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_accd81b8802949ca7ecd25579c55cfae2}{IdentifiedObjectPtr}} = std::shared\_ptr<IdentifiedObject>;}
\DoxyCodeLine{297 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ada5c6f6eed30d72e1849e5aa583e2e99}{IdentifiedObjectNNPtr}} = util::nn<IdentifiedObjectPtr>;}
\DoxyCodeLine{298 }
\DoxyCodeLine{304 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1BaseObject}{util::BaseObject}},}
\DoxyCodeLine{305                                       \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}},}
\DoxyCodeLine{306                                       \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable}{io::IWKTExportable}} \{}
\DoxyCodeLine{307   \textcolor{keyword}{public}:}
\DoxyCodeLine{309     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{\string~IdentifiedObject}}() \textcolor{keyword}{override};}
\DoxyCodeLine{311 }
\DoxyCodeLine{312     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_afa06cdb6d6d48c6785e7374b0db60a59}{NAME\_KEY}};}
\DoxyCodeLine{313     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_a50b1c9dcd7f87da6533e0bd65b2f810a}{IDENTIFIERS\_KEY}};}
\DoxyCodeLine{314     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_a4edc3a085e20f518ebd5dff048fc0483}{ALIAS\_KEY}};}
\DoxyCodeLine{315     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_afb4d796fd45b0268575d3c2e069b06da}{REMARKS\_KEY}};}
\DoxyCodeLine{316     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_a0f6f3ad5b0930115364d4a5a94f58a42}{DEPRECATED\_KEY}};}
\DoxyCodeLine{317 }
\DoxyCodeLine{318     \textcolor{comment}{// in practice only name().description() is used}}
\DoxyCodeLine{319     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa56f3dbff085fc0fceea708365b3f1be}{metadata::IdentifierNNPtr}} \&name() PROJ\_PURE\_DECL;}
\DoxyCodeLine{320     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&nameStr() PROJ\_PURE\_DECL;}
\DoxyCodeLine{321     PROJ\_DLL const std::vector<metadata::IdentifierNNPtr> \&}
\DoxyCodeLine{322     identifiers() PROJ\_PURE\_DECL;}
\DoxyCodeLine{323     PROJ\_DLL const std::vector<util::GenericNameNNPtr> \&}
\DoxyCodeLine{324     aliases() PROJ\_PURE\_DECL;}
\DoxyCodeLine{325     PROJ\_DLL const std::\textcolor{keywordtype}{string} \&remarks() PROJ\_PURE\_DECL;}
\DoxyCodeLine{326 }
\DoxyCodeLine{327     \textcolor{comment}{// from Apache SIS AbstractIdentifiedObject}}
\DoxyCodeLine{328     PROJ\_DLL \textcolor{keywordtype}{bool} isDeprecated() PROJ\_PURE\_DECL;}
\DoxyCodeLine{329 }
\DoxyCodeLine{330     \textcolor{comment}{// Non-\/standard}}
\DoxyCodeLine{331     PROJ\_DLL std::\textcolor{keywordtype}{string} alias() PROJ\_PURE\_DECL;}
\DoxyCodeLine{332     PROJ\_DLL \textcolor{keywordtype}{int} getEPSGCode() PROJ\_PURE\_DECL;}
\DoxyCodeLine{333 }
\DoxyCodeLine{334     PROJ\_PRIVATE :}
\DoxyCodeLine{336         \textcolor{keywordtype}{void}}
\DoxyCodeLine{337         formatID(io::WKTFormatter *formatter) const;}
\DoxyCodeLine{338 }
\DoxyCodeLine{339     PROJ\_INTERNAL \textcolor{keywordtype}{void} formatID(io::JSONFormatter *formatter) const;}
\DoxyCodeLine{340 }
\DoxyCodeLine{341     PROJ\_INTERNAL \textcolor{keywordtype}{void} formatRemarks(io::WKTFormatter *formatter) const;}
\DoxyCodeLine{342 }
\DoxyCodeLine{343     PROJ\_INTERNAL \textcolor{keywordtype}{void} formatRemarks(io::JSONFormatter *formatter) const;}
\DoxyCodeLine{344 }
\DoxyCodeLine{345     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{346         const util::IComparable *other,}
\DoxyCodeLine{347         util::IComparable::\mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{Criterion}} criterion =}
\DoxyCodeLine{348             util::IComparable::\mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{Criterion}}::STRICT,}
\DoxyCodeLine{349         const io::DatabaseContextPtr \&dbContext = \textcolor{keywordtype}{nullptr}) const override;}
\DoxyCodeLine{350 }
\DoxyCodeLine{351     PROJ\_INTERNAL \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{352         const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} *other,}
\DoxyCodeLine{353         util::IComparable::\mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{Criterion}} criterion =}
\DoxyCodeLine{354             util::IComparable::\mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{Criterion}}::STRICT,}
\DoxyCodeLine{355         const io::DatabaseContextPtr \&dbContext = \textcolor{keywordtype}{nullptr}) PROJ\_PURE\_DECL;}
\DoxyCodeLine{357 }
\DoxyCodeLine{358   protected:}
\DoxyCodeLine{359     PROJ\_FRIEND\_OPTIONAL(\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}});}
\DoxyCodeLine{360     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{361     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}}();}
\DoxyCodeLine{362     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}}(const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} \&other);}
\DoxyCodeLine{363 }
\DoxyCodeLine{364     \textcolor{keywordtype}{void} setProperties(const util::PropertyMap}
\DoxyCodeLine{365                            \&properties); \textcolor{comment}{// throw(InvalidValueTypeException)}}
\DoxyCodeLine{366 }
\DoxyCodeLine{367     virtual \textcolor{keywordtype}{bool} hasEquivalentNameToUsingAlias(}
\DoxyCodeLine{368         const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} *other,}
\DoxyCodeLine{369         const io::DatabaseContextPtr \&dbContext) const;}
\DoxyCodeLine{370 }
\DoxyCodeLine{371   private:}
\DoxyCodeLine{372     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{373     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} \&operator=(const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} \&other) = delete;}
\DoxyCodeLine{374 \};}
\DoxyCodeLine{375 }
\DoxyCodeLine{376 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{377 }
\DoxyCodeLine{378 class \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}};}
\DoxyCodeLine{380 using \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ad52e74a5720556a419450be6350359eb}{ObjectDomainPtr}} = std::shared\_ptr<\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}}>;}
\DoxyCodeLine{382 using \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_a5b1a089231563f64b7ff97f4c74e9a39}{ObjectDomainNNPtr}} = util::nn<\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_ad52e74a5720556a419450be6350359eb}{ObjectDomainPtr}}>;}
\DoxyCodeLine{383 }
\DoxyCodeLine{388 class PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}} : public util::BaseObject,}
\DoxyCodeLine{389                                   public util::IComparable \{}
\DoxyCodeLine{390   \textcolor{keyword}{public}:}
\DoxyCodeLine{392     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{\string~ObjectDomain}}() \textcolor{keyword}{override};}
\DoxyCodeLine{394 }
\DoxyCodeLine{395     \textcolor{comment}{// In ISO\_19111:2018, scope and domain are compulsory, but in WKT2:2015,}}
\DoxyCodeLine{396     \textcolor{comment}{// they}}
\DoxyCodeLine{397     \textcolor{comment}{// are not necessarily both specified}}
\DoxyCodeLine{398     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&scope() PROJ\_PURE\_DECL;}
\DoxyCodeLine{399     PROJ\_DLL \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&domainOfValidity() PROJ\_PURE\_DECL;}
\DoxyCodeLine{400 }
\DoxyCodeLine{401     PROJ\_DLL \textcolor{keyword}{static} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_a5b1a089231563f64b7ff97f4c74e9a39}{ObjectDomainNNPtr}}}
\DoxyCodeLine{402     create(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&scopeIn,}
\DoxyCodeLine{403            \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&extent);}
\DoxyCodeLine{404 }
\DoxyCodeLine{405     PROJ\_PRIVATE :}
\DoxyCodeLine{407         \textcolor{keywordtype}{void}}
\DoxyCodeLine{408         \_exportToWKT(\mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{io::WKTFormatter}} *formatter)}
\DoxyCodeLine{409             \textcolor{keyword}{const}; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{410 }
\DoxyCodeLine{411     PROJ\_INTERNAL \textcolor{keywordtype}{void} \_exportToJSON(}
\DoxyCodeLine{412         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{io::JSONFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(FormattingException)}}
\DoxyCodeLine{413 }
\DoxyCodeLine{414     \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{415         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{416         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{417             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{418         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{420 }
\DoxyCodeLine{421   \textcolor{keyword}{protected}:}
\DoxyCodeLine{423     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1optional}{util::optional<std::string>}} \&scopeIn,}
\DoxyCodeLine{424                  \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_a0d6b619c883f52d0e1f2b112c6f4dc96}{metadata::ExtentPtr}} \&extent);}
\DoxyCodeLine{426 }
\DoxyCodeLine{427     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}} \&other);}
\DoxyCodeLine{428     INLINED\_MAKE\_SHARED}
\DoxyCodeLine{429 }
\DoxyCodeLine{430   \textcolor{keyword}{private}:}
\DoxyCodeLine{431     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{432     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectDomain}{ObjectDomain}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{433 \};}
\DoxyCodeLine{434 }
\DoxyCodeLine{435 \textcolor{comment}{// -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{436 }
\DoxyCodeLine{437 \textcolor{keyword}{class }\mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}};}
\DoxyCodeLine{439 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_aabbd69def596723b3878f0cf2e3fc7ab}{ObjectUsagePtr}} = std::shared\_ptr<ObjectUsage>;}
\DoxyCodeLine{441 \textcolor{keyword}{using} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1common_afcc07fd83e2a69f3af50378a26bf6431}{ObjectUsageNNPtr}} = util::nn<ObjectUsagePtr>;}
\DoxyCodeLine{442 }
\DoxyCodeLine{447 \textcolor{keyword}{class }PROJ\_GCC\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}} : \textcolor{keyword}{public} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject}{IdentifiedObject}} \{}
\DoxyCodeLine{448   \textcolor{keyword}{public}:}
\DoxyCodeLine{450     PROJ\_DLL \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{\string~ObjectUsage}}() \textcolor{keyword}{override};}
\DoxyCodeLine{452 }
\DoxyCodeLine{453     PROJ\_DLL \textcolor{keyword}{const} std::vector<ObjectDomainNNPtr> \&domains() PROJ\_PURE\_DECL;}
\DoxyCodeLine{454 }
\DoxyCodeLine{455     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage_ad3253602467718d7a8822b71d6180b11}{SCOPE\_KEY}};}
\DoxyCodeLine{456     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage_a50478db23c866cb3e6f7068da24f0a6c}{DOMAIN\_OF\_VALIDITY\_KEY}};}
\DoxyCodeLine{457 }
\DoxyCodeLine{458     PROJ\_DLL \textcolor{keyword}{static} \textcolor{keyword}{const} std::string \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage_a5a34b5e56034634c259ae82560e7dc44}{OBJECT\_DOMAIN\_KEY}};}
\DoxyCodeLine{459 }
\DoxyCodeLine{461     \textcolor{keywordtype}{bool} \_isEquivalentTo(}
\DoxyCodeLine{462         \textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable}{util::IComparable}} *other,}
\DoxyCodeLine{463         \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1IComparable_af198b4ab092a20e3a5495308d68d7140}{util::IComparable::Criterion}} criterion =}
\DoxyCodeLine{464             util::IComparable::Criterion::STRICT,}
\DoxyCodeLine{465         \textcolor{keyword}{const} \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io::DatabaseContextPtr}} \&dbContext = \textcolor{keyword}{nullptr}) \textcolor{keyword}{const override};}
\DoxyCodeLine{467 }
\DoxyCodeLine{468   \textcolor{keyword}{protected}:}
\DoxyCodeLine{469     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}}();}
\DoxyCodeLine{470     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}}(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}} \&other);}
\DoxyCodeLine{471     \textcolor{keywordtype}{void} setProperties(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util::PropertyMap}}}
\DoxyCodeLine{472                            \&properties); \textcolor{comment}{// throw(InvalidValueTypeException)}}
\DoxyCodeLine{473 }
\DoxyCodeLine{474     \textcolor{keywordtype}{void} baseExportToWKT(}
\DoxyCodeLine{475         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTFormatter}{io::WKTFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{476 }
\DoxyCodeLine{477     \textcolor{keywordtype}{void} baseExportToJSON(}
\DoxyCodeLine{478         \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1JSONFormatter}{io::JSONFormatter}} *formatter) \textcolor{keyword}{const}; \textcolor{comment}{// throw(io::FormattingException)}}
\DoxyCodeLine{479 }
\DoxyCodeLine{480   \textcolor{keyword}{private}:}
\DoxyCodeLine{481     PROJ\_OPAQUE\_PRIVATE\_DATA}
\DoxyCodeLine{482     \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}} \&operator=(\textcolor{keyword}{const} \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1ObjectUsage}{ObjectUsage}} \&other) = \textcolor{keyword}{delete};}
\DoxyCodeLine{483 \};}
\DoxyCodeLine{484 }
\DoxyCodeLine{485 \} \textcolor{comment}{// namespace common}}
\DoxyCodeLine{486 }
\DoxyCodeLine{487 NS\_PROJ\_END}
\DoxyCodeLine{488 }
\DoxyCodeLine{489 \textcolor{preprocessor}{\#endif }\textcolor{comment}{//  COMMON\_HH\_INCLUDED}}

\end{DoxyCode}
