\hypertarget{a03359}{\section{I\+C\+P Namespace Reference}
\label{a03359}\index{I\+C\+P@{I\+C\+P}}
}


Namespace for \hyperlink{a03359}{I\+C\+P}.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a03359_ad7b46903eb7a26466b1eed6b8efcff32}{{\footnotesize template$<$typename Vector\+T $>$ }\\\hyperlink{a01410}{Vector\+T} {\bfseries center\+\_\+of\+\_\+gravity} (const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+points)}\label{a03359_ad7b46903eb7a26466b1eed6b8efcff32}

\item 
{\footnotesize template$<$typename Vector\+T , typename Quaternion\+T $>$ }\\void \hyperlink{a03359_a9fd460ef0fd1b316830ad9f7e1c897e6}{icp} (const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+points1, const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+points2, \hyperlink{a01410}{Vector\+T} \&\+\_\+cog1, \hyperlink{a01410}{Vector\+T} \&\+\_\+cog2, double \&\+\_\+scale1, double \&\+\_\+scale2, Quaternion\+T \&\+\_\+rotation)
\begin{DoxyCompactList}\small\item\em Compute rigid transformation from first point set to second point set. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vector\+T , typename Quaternion\+T $>$ }\\void \hyperlink{a03359_a63d680707792b751779468222df5c1c1}{icp} (const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+points1, const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+points2, \hyperlink{a01410}{Vector\+T} \&\+\_\+cog1, \hyperlink{a01410}{Vector\+T} \&\+\_\+cog2, Quaternion\+T \&\+\_\+rotation)
\begin{DoxyCompactList}\small\item\em Compute rigid transformation from first point set to second point set without scaling. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Namespace for \hyperlink{a03359}{I\+C\+P}. 

\subsection{Function Documentation}
\hypertarget{a03359_a9fd460ef0fd1b316830ad9f7e1c897e6}{\index{I\+C\+P@{I\+C\+P}!icp@{icp}}
\index{icp@{icp}!I\+C\+P@{I\+C\+P}}
\subsubsection[{icp}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T , typename Quaternion\+T $>$ void I\+C\+P\+::icp (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Vector\+T} $>$ \&}]{\+\_\+points1, }
\item[{const std\+::vector$<$ {\bf Vector\+T} $>$ \&}]{\+\_\+points2, }
\item[{{\bf Vector\+T} \&}]{\+\_\+cog1, }
\item[{{\bf Vector\+T} \&}]{\+\_\+cog2, }
\item[{double \&}]{\+\_\+scale1, }
\item[{double \&}]{\+\_\+scale2, }
\item[{Quaternion\+T \&}]{\+\_\+rotation}
\end{DoxyParamCaption}
)}}\label{a03359_a9fd460ef0fd1b316830ad9f7e1c897e6}


Compute rigid transformation from first point set to second point set. 

Compute \hyperlink{a03359}{I\+C\+P} Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing\+:~\newline

\begin{DoxyItemize}
\item substract cog1 from pointset 1 ~\newline

\item scale points with 1/scale1 ~\newline

\item rotate with given rotation ~\newline

\item scale with scale2 ~\newline

\item add cog2 ~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+points1} & first set of points \\
\hline
{\em \+\_\+points2} & second set of points \\
\hline
{\em \+\_\+cog1} & center of gravity first point set \\
\hline
{\em \+\_\+cog2} & center of gravity second point set \\
\hline
{\em \+\_\+scale1} & scaling factor of first point set \\
\hline
{\em \+\_\+scale2} & scaling factor of second point set \\
\hline
{\em \+\_\+rotation} & Rotation between point sets ( rotation(\+\_\+points1) -\/$>$ \+\_\+points2 \\
\hline
\end{DoxyParams}

\end{DoxyItemize}

Definition at line 91 of file I\+C\+P.\+cc.

\hypertarget{a03359_a63d680707792b751779468222df5c1c1}{\index{I\+C\+P@{I\+C\+P}!icp@{icp}}
\index{icp@{icp}!I\+C\+P@{I\+C\+P}}
\subsubsection[{icp}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T , typename Quaternion\+T $>$ void I\+C\+P\+::icp (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Vector\+T} $>$ \&}]{\+\_\+points1, }
\item[{const std\+::vector$<$ {\bf Vector\+T} $>$ \&}]{\+\_\+points2, }
\item[{{\bf Vector\+T} \&}]{\+\_\+cog1, }
\item[{{\bf Vector\+T} \&}]{\+\_\+cog2, }
\item[{Quaternion\+T \&}]{\+\_\+rotation}
\end{DoxyParamCaption}
)}}\label{a03359_a63d680707792b751779468222df5c1c1}


Compute rigid transformation from first point set to second point set without scaling. 

Compute \hyperlink{a03359}{I\+C\+P} Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing\+:~\newline

\begin{DoxyItemize}
\item substract cog1 from pointset 1 ~\newline

\item rotate with given rotation ~\newline

\item add cog2 ~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+points1} & first set of points \\
\hline
{\em \+\_\+points2} & second set of points \\
\hline
{\em \+\_\+cog1} & center of gravity first point set \\
\hline
{\em \+\_\+cog2} & center of gravity second point set \\
\hline
{\em \+\_\+rotation} & Rotation between point sets ( rotation(\+\_\+points1) -\/$>$ \+\_\+points2 \\
\hline
\end{DoxyParams}

\end{DoxyItemize}

Definition at line 191 of file I\+C\+P.\+cc.

