\hypertarget{a01448}{}\section{Open\+Flipper/libs\+\_\+required/\+Math\+\_\+\+Tools/\+I\+C\+P/\+I\+CP.hh File Reference}
\label{a01448}\index{Open\+Flipper/libs\+\_\+required/\+Math\+\_\+\+Tools/\+I\+C\+P/\+I\+C\+P.\+hh@{Open\+Flipper/libs\+\_\+required/\+Math\+\_\+\+Tools/\+I\+C\+P/\+I\+C\+P.\+hh}}


Classes for \hyperlink{a06202}{I\+CP} Algorithm.  


{\ttfamily \#include $<$gmm/gmm.\+h$>$}\newline
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{a06202}{I\+CP}
\begin{DoxyCompactList}\small\item\em Namespace for \hyperlink{a06202}{I\+CP}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename VectorT , typename QuaternionT $>$ }\\void \hyperlink{a06202_a9fd460ef0fd1b316830ad9f7e1c897e6}{I\+C\+P\+::icp} (const std\+::vector$<$ \hyperlink{a12072}{VectorT} $>$ \&\+\_\+points1, const std\+::vector$<$ \hyperlink{a12072}{VectorT} $>$ \&\+\_\+points2, \hyperlink{a12072}{VectorT} \&\+\_\+cog1, \hyperlink{a12072}{VectorT} \&\+\_\+cog2, double \&\+\_\+scale1, double \&\+\_\+scale2, QuaternionT \&\+\_\+rotation)
\begin{DoxyCompactList}\small\item\em Compute rigid transformation from first point set to second point set. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename VectorT , typename QuaternionT $>$ }\\void \hyperlink{a06202_a63d680707792b751779468222df5c1c1}{I\+C\+P\+::icp} (const std\+::vector$<$ \hyperlink{a12072}{VectorT} $>$ \&\+\_\+points1, const std\+::vector$<$ \hyperlink{a12072}{VectorT} $>$ \&\+\_\+points2, \hyperlink{a12072}{VectorT} \&\+\_\+cog1, \hyperlink{a12072}{VectorT} \&\+\_\+cog2, QuaternionT \&\+\_\+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}
Classes for \hyperlink{a06202}{I\+CP} Algorithm. 

Classes for doing Principal component analysis 