\hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{}\doxysection{osgeo\+::proj\+::operation\+::Concatenated\+Operation Class Reference}
\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}


An ordered sequence of two or more single coordinate operations (\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation}{Single\+Operation}}).  




{\ttfamily \#include $<$coordinateoperation.\+hpp$>$}



Inheritance diagram for osgeo\+::proj\+::operation\+::Concatenated\+Operation\+:
% FIG 0


Collaboration diagram for osgeo\+::proj\+::operation\+::Concatenated\+Operation\+:
% FIG 1
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a54be1dc54df9c3dcc007451160433b3d}{operations}} () const
\begin{DoxyCompactList}\small\item\em Return the operation steps of the concatenated operation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a7d5365a685eee983edcc8347a6bef3f2}{inverse}} () const override
\begin{DoxyCompactList}\small\item\em Return the inverse of the coordinate operation. \end{DoxyCompactList}\item 
std\+::set$<$ \mbox{\hyperlink{structosgeo_1_1proj_1_1operation_1_1GridDescription}{Grid\+Description}} $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a1d06fdb341ee13f9ac74a95507f09c86}{grids\+Needed}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&database\+Context, bool consider\+Known\+Grids\+As\+Available) const override
\begin{DoxyCompactList}\small\item\em Return grids needed by an operation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a49f625e73a0b4bcbc36e079e454f0fc9}{Concatenated\+Operation\+NNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_aeb86187f8fe8d1d1b59d742e597ec8e5}{create}} (const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&properties, const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \&operations\+In, const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}} $>$ \&accuracies)
\begin{DoxyCompactList}\small\item\em Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{Concatenated\+Operation}}. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a97b321ca529ab595b03e027dbf684707}{create\+Compute\+Metadata}} (const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \&operations\+In, bool check\+Extent)
\begin{DoxyCompactList}\small\item\em Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{Concatenated\+Operation}}, or return a single coordinate operation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
An ordered sequence of two or more single coordinate operations (\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation}{Single\+Operation}}). 

The sequence of coordinate operations is constrained by the requirement that the source coordinate reference system of step n+1 shall be the same as the target coordinate reference system of step n.

\begin{DoxyRemark}{Remarks}
Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{Concatenated\+Operation}} from \mbox{\hyperlink{general_doc_ISO_19111_2019}{ISO 19111\+:2019}} 
\end{DoxyRemark}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_aeb86187f8fe8d1d1b59d742e597ec8e5}\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_aeb86187f8fe8d1d1b59d742e597ec8e5}} 
\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}!create@{create}}
\index{create@{create}!osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}
\doxysubsubsection{\texorpdfstring{create()}{create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a49f625e73a0b4bcbc36e079e454f0fc9}{Concatenated\+Operation\+NNPtr}} osgeo\+::proj\+::operation\+::\+Concatenated\+Operation\+::create (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&}]{properties,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \&}]{operations\+In,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}} $>$ \&}]{accuracies }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{Concatenated\+Operation}}. 


\begin{DoxyParams}{Parameters}
{\em properties} & See \mbox{\hyperlink{general_doc_general_properties}{General properties}}. At minimum the name should be defined. \\
\hline
{\em operations\+In} & Vector of the \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} steps. \\
\hline
{\em accuracies} & Vector of positional accuracy (might be empty). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
new \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1Transformation}{Transformation}}. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1InvalidOperation}{Invalid\+Operation}}} & \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a97b321ca529ab595b03e027dbf684707}\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a97b321ca529ab595b03e027dbf684707}} 
\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}!createComputeMetadata@{createComputeMetadata}}
\index{createComputeMetadata@{createComputeMetadata}!osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}
\doxysubsubsection{\texorpdfstring{createComputeMetadata()}{createComputeMetadata()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} osgeo\+::proj\+::operation\+::\+Concatenated\+Operation\+::create\+Compute\+Metadata (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \&}]{operations\+In,  }\item[{bool}]{check\+Extent }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation}{Concatenated\+Operation}}, or return a single coordinate operation. 

This computes its accuracy from the sum of its member operations, its extent


\begin{DoxyParams}{Parameters}
{\em operations\+In} & Vector of the \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} steps. \\
\hline
{\em check\+Extent} & Whether we should check the non-\/emptiness of the intersection of the extents of the operations \\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1InvalidOperation}{Invalid\+Operation}}} & \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a1d06fdb341ee13f9ac74a95507f09c86}\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a1d06fdb341ee13f9ac74a95507f09c86}} 
\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}!gridsNeeded@{gridsNeeded}}
\index{gridsNeeded@{gridsNeeded}!osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}
\doxysubsubsection{\texorpdfstring{gridsNeeded()}{gridsNeeded()}}
{\footnotesize\ttfamily std\+::set$<$ \mbox{\hyperlink{structosgeo_1_1proj_1_1operation_1_1GridDescription}{Grid\+Description}} $>$ osgeo\+::proj\+::operation\+::\+Concatenated\+Operation\+::grids\+Needed (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&}]{database\+Context,  }\item[{bool}]{consider\+Known\+Grids\+As\+Available }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Return grids needed by an operation. 



Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation_a2d3af282dcc6ae1e6203162430212d32}{osgeo\+::proj\+::operation\+::\+Coordinate\+Operation}}.

\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a7d5365a685eee983edcc8347a6bef3f2}\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a7d5365a685eee983edcc8347a6bef3f2}} 
\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}!inverse@{inverse}}
\index{inverse@{inverse}!osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}
\doxysubsubsection{\texorpdfstring{inverse()}{inverse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} osgeo\+::proj\+::operation\+::\+Concatenated\+Operation\+::inverse (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Return the inverse of the coordinate operation. 


\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1UnsupportedOperationException}{util\+::\+Unsupported\+Operation\+Exception}}} & \\
\hline
\end{DoxyExceptions}


Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation_a7a9464f870db21ca776fbac8a430b08f}{osgeo\+::proj\+::operation\+::\+Coordinate\+Operation}}.

\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a54be1dc54df9c3dcc007451160433b3d}\label{classosgeo_1_1proj_1_1operation_1_1ConcatenatedOperation_a54be1dc54df9c3dcc007451160433b3d}} 
\index{osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}!operations@{operations}}
\index{operations@{operations}!osgeo::proj::operation::ConcatenatedOperation@{osgeo::proj::operation::ConcatenatedOperation}}
\doxysubsubsection{\texorpdfstring{operations()}{operations()}}
{\footnotesize\ttfamily const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \& osgeo\+::proj\+::operation\+::\+Concatenated\+Operation\+::operations (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Return the operation steps of the concatenated operation. 

\begin{DoxyReturn}{Returns}
the operation steps. 
\end{DoxyReturn}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
include/proj/coordinateoperation.\+hpp\item 
src/iso19111/operation/concatenatedoperation.\+cpp\end{DoxyCompactItemize}
