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


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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08432_acb7583fd9ea7e7c5afbb1acff8d1f050}\label{a08432_acb7583fd9ea7e7c5afbb1acff8d1f050}} 
typedef Scalar {\bfseries value\+\_\+type}
\item 
\mbox{\Hypertarget{a08432_ae28c4dd12b84457d342dac358b29da69}\label{a08432_ae28c4dd12b84457d342dac358b29da69}} 
typedef \hyperlink{a08432}{QuadricT}$<$ Scalar $>$ {\bfseries type}
\item 
\mbox{\Hypertarget{a08432_a6d4f4f12022c6581e485ce63e3debb2e}\label{a08432_a6d4f4f12022c6581e485ce63e3debb2e}} 
typedef \hyperlink{a08432}{QuadricT}$<$ Scalar $>$ {\bfseries Self}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08432_aa4dd04f39435110361e4088cc376618a}\label{a08432_aa4dd04f39435110361e4088cc376618a}} 
\hyperlink{a08432_aa4dd04f39435110361e4088cc376618a}{QuadricT} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d, Scalar \+\_\+e, Scalar \+\_\+f, Scalar \+\_\+g, Scalar \+\_\+h, Scalar \+\_\+i, Scalar \+\_\+j)
\begin{DoxyCompactList}\small\item\em construct with upper triangle of symmetrix 4x4 matrix \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_ae6a410e0bd234af03477f8466d0b45d3}\label{a08432_ae6a410e0bd234af03477f8466d0b45d3}} 
\hyperlink{a08432_ae6a410e0bd234af03477f8466d0b45d3}{QuadricT} (Scalar \+\_\+a=0.\+0, Scalar \+\_\+b=0.\+0, Scalar \+\_\+c=0.\+0, Scalar \+\_\+d=0.\+0)
\begin{DoxyCompactList}\small\item\em constructor from given plane equation\+: ax+by+cz+d\+\_\+=0 \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_a4203311a1984df782a076055e420234e}\label{a08432_a4203311a1984df782a076055e420234e}} 
{\footnotesize template$<$class \+\_\+\+Point $>$ }\\{\bfseries QuadricT} (const \+\_\+\+Point \&\+\_\+pt)
\item 
\mbox{\Hypertarget{a08432_ad730e9d23ae9cb49ef4bd39413547672}\label{a08432_ad730e9d23ae9cb49ef4bd39413547672}} 
{\footnotesize template$<$class \+\_\+\+Normal , class \+\_\+\+Point $>$ }\\{\bfseries QuadricT} (const \+\_\+\+Normal \&\+\_\+n, const \+\_\+\+Point \&\+\_\+p)
\item 
\mbox{\Hypertarget{a08432_a5e311f6f224d1c82092c15b3dafd1423}\label{a08432_a5e311f6f224d1c82092c15b3dafd1423}} 
void {\bfseries set} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d, Scalar \+\_\+e, Scalar \+\_\+f, Scalar \+\_\+g, Scalar \+\_\+h, Scalar \+\_\+i, Scalar \+\_\+j)
\item 
\mbox{\Hypertarget{a08432_aa6757bb611db962696f6736d3f72f752}\label{a08432_aa6757bb611db962696f6736d3f72f752}} 
{\footnotesize template$<$class \+\_\+\+Point $>$ }\\void {\bfseries set\+\_\+distance\+\_\+to\+\_\+point} (const \+\_\+\+Point \&\+\_\+pt)
\item 
\mbox{\Hypertarget{a08432_a29f09c6e1572b9b15ba75f9a27c4a3d2}\label{a08432_a29f09c6e1572b9b15ba75f9a27c4a3d2}} 
void {\bfseries set\+\_\+distance\+\_\+to\+\_\+plane} (Scalar \+\_\+a, Scalar \+\_\+b, Scalar \+\_\+c, Scalar \+\_\+d)
\item 
\mbox{\Hypertarget{a08432_a488d80c38d456acd0c92142ceeadd31e}\label{a08432_a488d80c38d456acd0c92142ceeadd31e}} 
{\footnotesize template$<$class \+\_\+\+Normal , class \+\_\+\+Point $>$ }\\void {\bfseries set\+\_\+distance\+\_\+to\+\_\+plane} (const \+\_\+\+Normal \&\+\_\+n, const \+\_\+\+Point \&\+\_\+p)
\item 
\mbox{\Hypertarget{a08432_a517295130e59b59dc70dd3291685e7d2}\label{a08432_a517295130e59b59dc70dd3291685e7d2}} 
void \hyperlink{a08432_a517295130e59b59dc70dd3291685e7d2}{clear} ()
\begin{DoxyCompactList}\small\item\em set all entries to zero \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_ad7420a9ff9906f3f72632bed88f46296}\label{a08432_ad7420a9ff9906f3f72632bed88f46296}} 
\hyperlink{a08432}{QuadricT}$<$ Scalar $>$ \& \hyperlink{a08432_ad7420a9ff9906f3f72632bed88f46296}{operator+=} (const \hyperlink{a08432}{QuadricT}$<$ Scalar $>$ \&\+\_\+q)
\begin{DoxyCompactList}\small\item\em add quadrics \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_ae40164c6b377f4631327116b18cb7241}\label{a08432_ae40164c6b377f4631327116b18cb7241}} 
\hyperlink{a08432}{QuadricT}$<$ Scalar $>$ {\bfseries operator+} (const \hyperlink{a08432}{QuadricT}$<$ Scalar $>$ \&\+\_\+other) const
\item 
\mbox{\Hypertarget{a08432_ac21882edebe006a5f53bd3ba068149b0}\label{a08432_ac21882edebe006a5f53bd3ba068149b0}} 
\hyperlink{a08432}{QuadricT}$<$ Scalar $>$ \& \hyperlink{a08432_ac21882edebe006a5f53bd3ba068149b0}{operator$\ast$=} (Scalar \+\_\+s)
\begin{DoxyCompactList}\small\item\em multiply by scalar \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_a63f8ec7d523e96083de93e793baeba5b}\label{a08432_a63f8ec7d523e96083de93e793baeba5b}} 
\hyperlink{a08432}{QuadricT}$<$ Scalar $>$ {\bfseries operator$\ast$} (Scalar \+\_\+s) const
\item 
\mbox{\Hypertarget{a08432_a227c2443569ce36cb5cd23277e3cfba6}\label{a08432_a227c2443569ce36cb5cd23277e3cfba6}} 
{\footnotesize template$<$class \+\_\+\+Vec4 $>$ }\\\+\_\+\+Vec4 \hyperlink{a08432_a227c2443569ce36cb5cd23277e3cfba6}{operator$\ast$} (const \+\_\+\+Vec4 \&\+\_\+v) const
\begin{DoxyCompactList}\small\item\em multiply 4D vector from right\+: Q$\ast$v \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_ae3b9a2532b85ac0af7066575ffce1150}\label{a08432_ae3b9a2532b85ac0af7066575ffce1150}} 
{\footnotesize template$<$class \+\_\+\+Vec $>$ }\\Scalar \hyperlink{a08432_ae3b9a2532b85ac0af7066575ffce1150}{operator()} (const \+\_\+\+Vec \&\+\_\+v) const
\begin{DoxyCompactList}\small\item\em evaluate quadric Q at (3D or 4D) vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_adb785c3bc05b9ab8363533e576dd5cca}\label{a08432_adb785c3bc05b9ab8363533e576dd5cca}} 
Scalar {\bfseries a} () const
\item 
\mbox{\Hypertarget{a08432_a7912bbad7dd26a5206be6889f5736aa9}\label{a08432_a7912bbad7dd26a5206be6889f5736aa9}} 
Scalar {\bfseries b} () const
\item 
\mbox{\Hypertarget{a08432_a730bf412d68026066594ad21504b4798}\label{a08432_a730bf412d68026066594ad21504b4798}} 
Scalar {\bfseries c} () const
\item 
\mbox{\Hypertarget{a08432_adc1c5f90f6f2f3dc0911987fa30daf85}\label{a08432_adc1c5f90f6f2f3dc0911987fa30daf85}} 
Scalar {\bfseries d} () const
\item 
\mbox{\Hypertarget{a08432_aac6a6b7710877a11c715697f9f0d375c}\label{a08432_aac6a6b7710877a11c715697f9f0d375c}} 
Scalar {\bfseries e} () const
\item 
\mbox{\Hypertarget{a08432_a197a623211f5b3ac97fbdc92741b6c9b}\label{a08432_a197a623211f5b3ac97fbdc92741b6c9b}} 
Scalar {\bfseries f} () const
\item 
\mbox{\Hypertarget{a08432_aab3a604e5e78deffa3a988589d217047}\label{a08432_aab3a604e5e78deffa3a988589d217047}} 
Scalar {\bfseries g} () const
\item 
\mbox{\Hypertarget{a08432_ac9ba33f904cb27b425e0f008b9f901c6}\label{a08432_ac9ba33f904cb27b425e0f008b9f901c6}} 
Scalar {\bfseries h} () const
\item 
\mbox{\Hypertarget{a08432_a39090881d7a4c67e65e8e217f9753f69}\label{a08432_a39090881d7a4c67e65e8e217f9753f69}} 
Scalar {\bfseries i} () const
\item 
\mbox{\Hypertarget{a08432_ab814e4b1ddb413120d20a9421d215fee}\label{a08432_ab814e4b1ddb413120d20a9421d215fee}} 
Scalar {\bfseries j} () const
\item 
\mbox{\Hypertarget{a08432_a443af943c07fbdf3790c0433b7073717}\label{a08432_a443af943c07fbdf3790c0433b7073717}} 
Scalar {\bfseries xx} () const
\item 
\mbox{\Hypertarget{a08432_a47e88002c30b29b408d2eae02c0511c2}\label{a08432_a47e88002c30b29b408d2eae02c0511c2}} 
Scalar {\bfseries xy} () const
\item 
\mbox{\Hypertarget{a08432_a1e7f9034b69a38a023363b9286e718db}\label{a08432_a1e7f9034b69a38a023363b9286e718db}} 
Scalar {\bfseries xz} () const
\item 
\mbox{\Hypertarget{a08432_a78ca32ed0f4f413dfe412aca5525ed24}\label{a08432_a78ca32ed0f4f413dfe412aca5525ed24}} 
Scalar {\bfseries xw} () const
\item 
\mbox{\Hypertarget{a08432_affb084408312b67a57be9c17e2e4c957}\label{a08432_affb084408312b67a57be9c17e2e4c957}} 
Scalar {\bfseries yy} () const
\item 
\mbox{\Hypertarget{a08432_ae2965004336a0c288ed178a52c77b406}\label{a08432_ae2965004336a0c288ed178a52c77b406}} 
Scalar {\bfseries yz} () const
\item 
\mbox{\Hypertarget{a08432_ad6f2f7d846f5bc45b0aac5bd7db651b4}\label{a08432_ad6f2f7d846f5bc45b0aac5bd7db651b4}} 
Scalar {\bfseries yw} () const
\item 
\mbox{\Hypertarget{a08432_adb4e740145cd6e67c625bdb35b0b769a}\label{a08432_adb4e740145cd6e67c625bdb35b0b769a}} 
Scalar {\bfseries zz} () const
\item 
\mbox{\Hypertarget{a08432_aef7ac462cfb30ec0b8d52a952d994e81}\label{a08432_aef7ac462cfb30ec0b8d52a952d994e81}} 
Scalar {\bfseries zw} () const
\item 
\mbox{\Hypertarget{a08432_a4717c616d0857f2eba7bd91efbe03d95}\label{a08432_a4717c616d0857f2eba7bd91efbe03d95}} 
Scalar {\bfseries ww} () const
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08432_a8aa826372b7be8f40e06920fa8b962db}\label{a08432_a8aa826372b7be8f40e06920fa8b962db}} 
{\footnotesize template$<$class \+\_\+\+Vec3 $>$ }\\Scalar \hyperlink{a08432_a8aa826372b7be8f40e06920fa8b962db}{evaluate} (const \+\_\+\+Vec3 \&\+\_\+v, Gen\+Prog\+::\+Int2\+Type$<$ 3 $>$) const
\begin{DoxyCompactList}\small\item\em evaluate quadric Q at 3D vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08432_a61ef039c41b6ad5cd04b7db296d2f546}\label{a08432_a61ef039c41b6ad5cd04b7db296d2f546}} 
{\footnotesize template$<$class \+\_\+\+Vec4 $>$ }\\Scalar \hyperlink{a08432_a61ef039c41b6ad5cd04b7db296d2f546}{evaluate} (const \+\_\+\+Vec4 \&\+\_\+v, Gen\+Prog\+::\+Int2\+Type$<$ 4 $>$) const
\begin{DoxyCompactList}\small\item\em evaluate quadric Q at 4D vector v\+: v$\ast$\+Q$\ast$v \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08432_a17cc79daa70f44b7d8f7aca9c6ae8845}\label{a08432_a17cc79daa70f44b7d8f7aca9c6ae8845}} 
Scalar {\bfseries a\+\_\+}
\item 
\mbox{\Hypertarget{a08432_adac774409380b7fe0696f04a23f6a78c}\label{a08432_adac774409380b7fe0696f04a23f6a78c}} 
Scalar {\bfseries b\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a8e37dd9bbb5e9c5d3154910c14a079a2}\label{a08432_a8e37dd9bbb5e9c5d3154910c14a079a2}} 
Scalar {\bfseries c\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a571413613ebf8337f9f9094c1c946705}\label{a08432_a571413613ebf8337f9f9094c1c946705}} 
Scalar {\bfseries d\+\_\+}
\item 
\mbox{\Hypertarget{a08432_ad6f3806c35e1e8f11fb912b604c79be2}\label{a08432_ad6f3806c35e1e8f11fb912b604c79be2}} 
Scalar {\bfseries e\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a74ef6db3d5de70e37728c6e398ba6d63}\label{a08432_a74ef6db3d5de70e37728c6e398ba6d63}} 
Scalar {\bfseries f\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a4971c2637b1deda1387e065765d9a71f}\label{a08432_a4971c2637b1deda1387e065765d9a71f}} 
Scalar {\bfseries g\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a3ea35113b77c90a86397006177dbdd90}\label{a08432_a3ea35113b77c90a86397006177dbdd90}} 
Scalar {\bfseries h\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a109b909113a36667a1e658295447aea6}\label{a08432_a109b909113a36667a1e658295447aea6}} 
Scalar {\bfseries i\+\_\+}
\item 
\mbox{\Hypertarget{a08432_a4ba50e0de6e8063bebe518725fa4a2e4}\label{a08432_a4ba50e0de6e8063bebe518725fa4a2e4}} 
Scalar {\bfseries j\+\_\+}
\end{DoxyCompactItemize}


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

/class \hyperlink{a08432}{QuadricT} \hyperlink{a15004}{Geometry/\+Quadric\+T.\+hh}

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

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



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