\hypertarget{a01089}{\section{Open\+Mesh\+:\+:Geometry\+:\+:Quadric\+T$<$ Scalar $>$ Class Template Reference}
\label{a01089}\index{Open\+Mesh\+::\+Geometry\+::\+Quadric\+T$<$ Scalar $>$@{Open\+Mesh\+::\+Geometry\+::\+Quadric\+T$<$ Scalar $>$}}
}


{\ttfamily \#include $<$libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Geometry/\+Quadric\+T.\+hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01089_acb7583fd9ea7e7c5afbb1acff8d1f050}{typedef Scalar {\bfseries value\+\_\+type}}\label{a01089_acb7583fd9ea7e7c5afbb1acff8d1f050}

\item 
\hypertarget{a01089_ae28c4dd12b84457d342dac358b29da69}{typedef \hyperlink{a01089}{Quadric\+T}$<$ Scalar $>$ {\bfseries type}}\label{a01089_ae28c4dd12b84457d342dac358b29da69}

\item 
\hypertarget{a01089_a6d4f4f12022c6581e485ce63e3debb2e}{typedef \hyperlink{a01089}{Quadric\+T}$<$ Scalar $>$ {\bfseries Self}}\label{a01089_a6d4f4f12022c6581e485ce63e3debb2e}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01089_aa4dd04f39435110361e4088cc376618a}{\hyperlink{a01089_aa4dd04f39435110361e4088cc376618a}{Quadric\+T} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d, Scalar \+\_\+e, Scalar \+\_\+f, Scalar \+\_\+g, Scalar \+\_\+h, Scalar \+\_\+i, Scalar \+\_\+j)}\label{a01089_aa4dd04f39435110361e4088cc376618a}

\begin{DoxyCompactList}\small\item\em construct with upper triangle of symmetrix 4x4 matrix \end{DoxyCompactList}\item 
\hypertarget{a01089_ae6a410e0bd234af03477f8466d0b45d3}{\hyperlink{a01089_ae6a410e0bd234af03477f8466d0b45d3}{Quadric\+T} (Scalar \+\_\+a=0.\+0, Scalar \+\_\+b=0.\+0, Scalar \+\_\+c=0.\+0, Scalar \+\_\+d=0.\+0)}\label{a01089_ae6a410e0bd234af03477f8466d0b45d3}

\begin{DoxyCompactList}\small\item\em constructor from given plane equation\+: ax+by+cz+d\+\_\+=0 \end{DoxyCompactList}\item 
\hypertarget{a01089_a4203311a1984df782a076055e420234e}{{\footnotesize template$<$class \+\_\+\+Point $>$ }\\{\bfseries Quadric\+T} (const \+\_\+\+Point \&\+\_\+pt)}\label{a01089_a4203311a1984df782a076055e420234e}

\item 
\hypertarget{a01089_ad730e9d23ae9cb49ef4bd39413547672}{{\footnotesize template$<$class \+\_\+\+Normal , class \+\_\+\+Point $>$ }\\{\bfseries Quadric\+T} (const \+\_\+\+Normal \&\+\_\+n, const \+\_\+\+Point \&\+\_\+p)}\label{a01089_ad730e9d23ae9cb49ef4bd39413547672}

\item 
\hypertarget{a01089_a5e311f6f224d1c82092c15b3dafd1423}{void {\bfseries set} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d, Scalar \+\_\+e, Scalar \+\_\+f, Scalar \+\_\+g, Scalar \+\_\+h, Scalar \+\_\+i, Scalar \+\_\+j)}\label{a01089_a5e311f6f224d1c82092c15b3dafd1423}

\item 
\hypertarget{a01089_aa6757bb611db962696f6736d3f72f752}{{\footnotesize template$<$class \+\_\+\+Point $>$ }\\void {\bfseries set\+\_\+distance\+\_\+to\+\_\+point} (const \+\_\+\+Point \&\+\_\+pt)}\label{a01089_aa6757bb611db962696f6736d3f72f752}

\item 
\hypertarget{a01089_a29f09c6e1572b9b15ba75f9a27c4a3d2}{void {\bfseries set\+\_\+distance\+\_\+to\+\_\+plane} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d)}\label{a01089_a29f09c6e1572b9b15ba75f9a27c4a3d2}

\item 
\hypertarget{a01089_a488d80c38d456acd0c92142ceeadd31e}{{\footnotesize template$<$class \+\_\+\+Normal , class \+\_\+\+Point $>$ }\\void {\bfseries set\+\_\+distance\+\_\+to\+\_\+plane} (const \+\_\+\+Normal \&\+\_\+n, const \+\_\+\+Point \&\+\_\+p)}\label{a01089_a488d80c38d456acd0c92142ceeadd31e}

\item 
\hypertarget{a01089_a517295130e59b59dc70dd3291685e7d2}{void \hyperlink{a01089_a517295130e59b59dc70dd3291685e7d2}{clear} ()}\label{a01089_a517295130e59b59dc70dd3291685e7d2}

\begin{DoxyCompactList}\small\item\em set all entries to zero \end{DoxyCompactList}\item 
\hypertarget{a01089_ad7420a9ff9906f3f72632bed88f46296}{\hyperlink{a01089}{Quadric\+T}$<$ Scalar $>$ \& \hyperlink{a01089_ad7420a9ff9906f3f72632bed88f46296}{operator+=} (const \hyperlink{a01089}{Quadric\+T}$<$ Scalar $>$ \&\+\_\+q)}\label{a01089_ad7420a9ff9906f3f72632bed88f46296}

\begin{DoxyCompactList}\small\item\em add quadrics \end{DoxyCompactList}\item 
\hypertarget{a01089_ac21882edebe006a5f53bd3ba068149b0}{\hyperlink{a01089}{Quadric\+T}$<$ Scalar $>$ \& \hyperlink{a01089_ac21882edebe006a5f53bd3ba068149b0}{operator$\ast$=} (Scalar \+\_\+s)}\label{a01089_ac21882edebe006a5f53bd3ba068149b0}

\begin{DoxyCompactList}\small\item\em multiply by scalar \end{DoxyCompactList}\item 
\hypertarget{a01089_a89d91bd95558c5b0705c3f7884fbd14e}{{\footnotesize template$<$class \+\_\+\+Vec4 $>$ }\\\+\_\+\+Vec4 \hyperlink{a01089_a89d91bd95558c5b0705c3f7884fbd14e}{operator$\ast$} (const \+\_\+\+Vec4 \&\+\_\+v) const }\label{a01089_a89d91bd95558c5b0705c3f7884fbd14e}

\begin{DoxyCompactList}\small\item\em multiply 4\+D vector from right\+: Q$\ast$v \end{DoxyCompactList}\item 
\hypertarget{a01089_a040af8afa4aa88b3ca832a713be83844}{{\footnotesize template$<$class \+\_\+\+Vec $>$ }\\Scalar \hyperlink{a01089_a040af8afa4aa88b3ca832a713be83844}{operator()} (const \+\_\+\+Vec \&\+\_\+v) const }\label{a01089_a040af8afa4aa88b3ca832a713be83844}

\begin{DoxyCompactList}\small\item\em evaluate quadric Q at (3\+D or 4\+D) vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\item 
\hypertarget{a01089_a9b77f0d897c3ea5ec7bbc6fed7a50aed}{Scalar {\bfseries a} () const }\label{a01089_a9b77f0d897c3ea5ec7bbc6fed7a50aed}

\item 
\hypertarget{a01089_a555385bce7e45759a4f0af55c93c949a}{Scalar {\bfseries b} () const }\label{a01089_a555385bce7e45759a4f0af55c93c949a}

\item 
\hypertarget{a01089_abb49e185bf33c0b774a645ae93f75a2e}{Scalar {\bfseries c} () const }\label{a01089_abb49e185bf33c0b774a645ae93f75a2e}

\item 
\hypertarget{a01089_ae8616f00bcd713f7a55deffd6d0ffd12}{Scalar {\bfseries d} () const }\label{a01089_ae8616f00bcd713f7a55deffd6d0ffd12}

\item 
\hypertarget{a01089_a417933da5ba5288fba4b7db06613b9ce}{Scalar {\bfseries e} () const }\label{a01089_a417933da5ba5288fba4b7db06613b9ce}

\item 
\hypertarget{a01089_a6748fd0ad2643499c84482bf6697c2bf}{Scalar {\bfseries f} () const }\label{a01089_a6748fd0ad2643499c84482bf6697c2bf}

\item 
\hypertarget{a01089_a44539bc70850183472624122bb7530b8}{Scalar {\bfseries g} () const }\label{a01089_a44539bc70850183472624122bb7530b8}

\item 
\hypertarget{a01089_aba2085487851445cd3784f9e53985191}{Scalar {\bfseries h} () const }\label{a01089_aba2085487851445cd3784f9e53985191}

\item 
\hypertarget{a01089_a5066823b3f5e6eefb2e5d6df2dc450ad}{Scalar {\bfseries i} () const }\label{a01089_a5066823b3f5e6eefb2e5d6df2dc450ad}

\item 
\hypertarget{a01089_a95812ac29070f9c0ae3d15ffb12c2c2f}{Scalar {\bfseries j} () const }\label{a01089_a95812ac29070f9c0ae3d15ffb12c2c2f}

\item 
\hypertarget{a01089_ac3773a4af3953e175c5beb5882f3ce11}{Scalar {\bfseries xx} () const }\label{a01089_ac3773a4af3953e175c5beb5882f3ce11}

\item 
\hypertarget{a01089_a0ea0a6e1c470faaf15aa0aee55c08252}{Scalar {\bfseries xy} () const }\label{a01089_a0ea0a6e1c470faaf15aa0aee55c08252}

\item 
\hypertarget{a01089_a4cdf28a4bc28df385c601947859fe639}{Scalar {\bfseries xz} () const }\label{a01089_a4cdf28a4bc28df385c601947859fe639}

\item 
\hypertarget{a01089_ae2ea4e2b2462119c6d941bda7dd74967}{Scalar {\bfseries xw} () const }\label{a01089_ae2ea4e2b2462119c6d941bda7dd74967}

\item 
\hypertarget{a01089_a3827b39064ca1e1941ed03b944b94d83}{Scalar {\bfseries yy} () const }\label{a01089_a3827b39064ca1e1941ed03b944b94d83}

\item 
\hypertarget{a01089_a194ea4619d97e3f8fc62f694de5b27ca}{Scalar {\bfseries yz} () const }\label{a01089_a194ea4619d97e3f8fc62f694de5b27ca}

\item 
\hypertarget{a01089_a14e426c91de6b3d3bbe280a5aa8c3d8c}{Scalar {\bfseries yw} () const }\label{a01089_a14e426c91de6b3d3bbe280a5aa8c3d8c}

\item 
\hypertarget{a01089_a8e53dd915a535ba4c145a4b175b6aff5}{Scalar {\bfseries zz} () const }\label{a01089_a8e53dd915a535ba4c145a4b175b6aff5}

\item 
\hypertarget{a01089_ac65d4cf293b8f7a574f7a9c8f21c115f}{Scalar {\bfseries zw} () const }\label{a01089_ac65d4cf293b8f7a574f7a9c8f21c115f}

\item 
\hypertarget{a01089_a170312b097cf341f6ed3bc8ad0fc8d66}{Scalar {\bfseries ww} () const }\label{a01089_a170312b097cf341f6ed3bc8ad0fc8d66}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01089_ac52ebb4fea9e774c0dc1856826f70d38}{{\footnotesize template$<$class \+\_\+\+Vec3 $>$ }\\Scalar \hyperlink{a01089_ac52ebb4fea9e774c0dc1856826f70d38}{evaluate} (const \+\_\+\+Vec3 \&\+\_\+v, Gen\+Prog\+::\+Int2\+Type$<$ 3 $>$) const }\label{a01089_ac52ebb4fea9e774c0dc1856826f70d38}

\begin{DoxyCompactList}\small\item\em evaluate quadric Q at 3\+D vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\item 
\hypertarget{a01089_a2297dbafeede5c8a1992e215da793305}{{\footnotesize template$<$class \+\_\+\+Vec4 $>$ }\\Scalar \hyperlink{a01089_a2297dbafeede5c8a1992e215da793305}{evaluate} (const \+\_\+\+Vec4 \&\+\_\+v, Gen\+Prog\+::\+Int2\+Type$<$ 4 $>$) const }\label{a01089_a2297dbafeede5c8a1992e215da793305}

\begin{DoxyCompactList}\small\item\em evaluate quadric Q at 4\+D vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01089_a17cc79daa70f44b7d8f7aca9c6ae8845}{Scalar {\bfseries a\+\_\+}}\label{a01089_a17cc79daa70f44b7d8f7aca9c6ae8845}

\item 
\hypertarget{a01089_adac774409380b7fe0696f04a23f6a78c}{Scalar {\bfseries b\+\_\+}}\label{a01089_adac774409380b7fe0696f04a23f6a78c}

\item 
\hypertarget{a01089_a8e37dd9bbb5e9c5d3154910c14a079a2}{Scalar {\bfseries c\+\_\+}}\label{a01089_a8e37dd9bbb5e9c5d3154910c14a079a2}

\item 
\hypertarget{a01089_a571413613ebf8337f9f9094c1c946705}{Scalar {\bfseries d\+\_\+}}\label{a01089_a571413613ebf8337f9f9094c1c946705}

\item 
\hypertarget{a01089_ad6f3806c35e1e8f11fb912b604c79be2}{Scalar {\bfseries e\+\_\+}}\label{a01089_ad6f3806c35e1e8f11fb912b604c79be2}

\item 
\hypertarget{a01089_a74ef6db3d5de70e37728c6e398ba6d63}{Scalar {\bfseries f\+\_\+}}\label{a01089_a74ef6db3d5de70e37728c6e398ba6d63}

\item 
\hypertarget{a01089_a4971c2637b1deda1387e065765d9a71f}{Scalar {\bfseries g\+\_\+}}\label{a01089_a4971c2637b1deda1387e065765d9a71f}

\item 
\hypertarget{a01089_a3ea35113b77c90a86397006177dbdd90}{Scalar {\bfseries h\+\_\+}}\label{a01089_a3ea35113b77c90a86397006177dbdd90}

\item 
\hypertarget{a01089_a109b909113a36667a1e658295447aea6}{Scalar {\bfseries i\+\_\+}}\label{a01089_a109b909113a36667a1e658295447aea6}

\item 
\hypertarget{a01089_a4ba50e0de6e8063bebe518725fa4a2e4}{Scalar {\bfseries j\+\_\+}}\label{a01089_a4ba50e0de6e8063bebe518725fa4a2e4}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Scalar$>$class Open\+Mesh\+::\+Geometry\+::\+Quadric\+T$<$ Scalar $>$}

/class \hyperlink{a01089}{Quadric\+T} \hyperlink{a01519}{Geometry/\+Quadric\+T.\+hh}

Stores a quadric as a 4x4 symmetrix matrix. Used by the error quadric based mesh decimation algorithms. 

Definition at line 87 of file Quadric\+T.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Geometry/\hyperlink{a01519}{Quadric\+T.\+hh}\end{DoxyCompactItemize}
