\hypertarget{a03368}{\section{Open\+Mesh Namespace Reference}
\label{a03368}\index{Open\+Mesh@{Open\+Mesh}}
}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{a03369}{Attributes}
\item 
 \hyperlink{a03370}{Concepts}
\item 
 \hyperlink{a03371}{Decimater}
\item 
 \hyperlink{a03372}{Gen\+Prog}
\item 
 \hyperlink{a03374}{I\+O}
\item 
 \hyperlink{a03376}{Iterators}
\item 
 \hyperlink{a03377}{Kernel\+\_\+\+O\+S\+G}
\item 
 \hyperlink{a03380}{Python}
\item 
 \hyperlink{a03387}{Utils}
\item 
 \hyperlink{a03388}{V\+D\+P\+M}
\end{DoxyCompactItemize}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a00295}{Array\+Kernel}
\item 
class \hyperlink{a00303}{Attrib\+Kernel\+T}
\item 
class \hyperlink{a00305}{Auto\+Property\+Handle\+T}
\item 
class \hyperlink{a00317}{Base\+Handle}
\begin{DoxyCompactList}\small\item\em Base class for all handle types. \end{DoxyCompactList}\item 
class \hyperlink{a00324}{Base\+Kernel}
\item 
class \hyperlink{a00326}{Base\+Mesh}
\item 
class \hyperlink{a00332}{Base\+Property}
\item 
struct \hyperlink{a00336}{Base\+Prop\+Handle\+T}
\begin{DoxyCompactList}\small\item\em Base property handle. \end{DoxyCompactList}\item 
class \hyperlink{a00407}{C\+L\+A\+S\+S\+N\+A\+M\+E}
\item 
struct \hyperlink{a00422}{color\+\_\+caster$<$ osg\+::\+Color3f, osg\+::\+Color3ub $>$}
\item 
struct \hyperlink{a00423}{color\+\_\+caster$<$ osg\+::\+Color3ub, osg\+::\+Color3f $>$}
\item 
class \hyperlink{a00492}{Default\+Traits}
\item 
struct \hyperlink{a00520}{Edge\+Handle}
\begin{DoxyCompactList}\small\item\em Handle for a edge entity. \end{DoxyCompactList}\item 
class \hyperlink{a00540}{Endian}
\item 
struct \hyperlink{a00543}{E\+Prop\+Handle\+T}
\item 
struct \hyperlink{a00554}{Face\+Handle}
\begin{DoxyCompactList}\small\item\em Handle for a face entity. \end{DoxyCompactList}\item 
struct \hyperlink{a00592}{Final\+Mesh\+Items\+T}
\begin{DoxyCompactList}\small\item\em Definition of the mesh entities (items). \end{DoxyCompactList}\item 
struct \hyperlink{a00598}{F\+Prop\+Handle\+T}
\item 
struct \hyperlink{a00667}{Halfedge\+Handle}
\begin{DoxyCompactList}\small\item\em Handle for a halfedge entity. \end{DoxyCompactList}\item 
struct \hyperlink{a00710}{H\+Prop\+Handle\+T}
\item 
class \hyperlink{a00786}{Loop\+Scheme\+Mask\+T}
\item 
struct \hyperlink{a00805}{Merge\+Traits}
\item 
struct \hyperlink{a00806}{Mesh\+Cast}
\begin{DoxyCompactList}\small\item\em Cast a mesh with different but identical traits into each other. \end{DoxyCompactList}\item 
struct \hyperlink{a00807}{Mesh\+Cast$<$ const Lhs\+Mesh\+T \&, const Rhs\+Mesh\+T \& $>$}
\item 
struct \hyperlink{a00808}{Mesh\+Cast$<$ const Lhs\+Mesh\+T $\ast$, const Rhs\+Mesh\+T $\ast$ $>$}
\item 
struct \hyperlink{a00809}{Mesh\+Cast$<$ Lhs\+Mesh\+T \&, Rhs\+Mesh\+T \& $>$}
\item 
struct \hyperlink{a00810}{Mesh\+Cast$<$ Lhs\+Mesh\+T $\ast$, Rhs\+Mesh\+T $\ast$ $>$}
\item 
struct \hyperlink{a00865}{M\+Prop\+Handle\+T}
\item 
class \hyperlink{a00886}{Normal\+Cone\+T}
\item 
class \hyperlink{a00979}{Poly\+Connectivity}
\begin{DoxyCompactList}\small\item\em Connectivity Class for polygonal meshes. \end{DoxyCompactList}\item 
struct \hyperlink{a00990}{Poly\+Mesh\+\_\+\+Array\+Kernel\+\_\+\+Generator\+T}
\begin{DoxyCompactList}\small\item\em Helper class to build a Poly\+Mesh-\/type. \end{DoxyCompactList}\item 
class \hyperlink{a00991}{Poly\+Mesh\+\_\+\+Array\+Kernel\+T}
\item 
class \hyperlink{a00994}{Poly\+Mesh\+T}
\item 
class \hyperlink{a01028}{Property\+Container}
\begin{DoxyCompactList}\small\item\em A a container for properties. \end{DoxyCompactList}\item 
class \hyperlink{a01035}{Property\+Manager}
\item 
class \hyperlink{a01039}{Property\+T}
\begin{DoxyCompactList}\small\item\em Default property class for any type T. \end{DoxyCompactList}\item 
class \hyperlink{a01042}{Property\+T$<$ bool $>$}
\item 
class \hyperlink{a01044}{Property\+T$<$ std\+::string $>$}
\item 
class \hyperlink{a01099}{Random\+Number\+Generator}
\item 
class \hyperlink{a01181}{Singleton\+T}
\item 
class \hyperlink{a01254}{Stripifier\+T}
\item 
class \hyperlink{a01332}{Tri\+Connectivity}
\begin{DoxyCompactList}\small\item\em Connectivity Class for Triangle Meshes. \end{DoxyCompactList}\item 
struct \hyperlink{a01334}{Tri\+Mesh\+\_\+\+Array\+Kernel\+\_\+\+Generator\+T}
\begin{DoxyCompactList}\small\item\em Helper class to create a Tri\+Mesh-\/type based on Array\+Kernel\+T. \end{DoxyCompactList}\item 
class \hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}
\item 
class \hyperlink{a01340}{Tri\+Mesh\+T}
\item 
class \hyperlink{a01399}{V\+D\+P\+M\+Synthesizer\+Viewer\+Widget}
\item 
struct \hyperlink{a01404}{vector\+\_\+traits}
\item 
class \hyperlink{a01405}{Vector\+Data\+T}
\item 
class \hyperlink{a01409}{Vector\+T}
\item 
struct \hyperlink{a01426}{Vertex\+Handle}
\begin{DoxyCompactList}\small\item\em Handle for a vertex entity. \end{DoxyCompactList}\item 
struct \hyperlink{a01470}{V\+Prop\+Handle\+T}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a03368_a372df59b46e6aab68d079266eed6502b}{typedef \hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}\\*
$<$ \hyperlink{a00838}{V\+D\+P\+M\+::\+Mesh\+Traits} $>$ {\bfseries V\+D\+P\+M\+Mesh}}\label{a03368_a372df59b46e6aab68d079266eed6502b}

\item 
\hypertarget{a03368_a6f4507dc506faf64d5e6c9fb04ea9104}{typedef \hyperlink{a00841}{Mesh\+Viewer\+Widget\+T}\\*
$<$ \hyperlink{a01335}{V\+D\+P\+M\+Mesh} $>$ {\bfseries Mesh\+Viewer\+Widget}}\label{a03368_a6f4507dc506faf64d5e6c9fb04ea9104}

\item 
\hypertarget{a03368_a6a1832a1053fc56a304ab2633eb8f4df}{typedef \hyperlink{a00786}{Loop\+Scheme\+Mask\+T}\\*
$<$ double, 100 $>$ {\bfseries Loop\+Scheme\+Mask\+Double}}\label{a03368_a6a1832a1053fc56a304ab2633eb8f4df}

\item 
\hypertarget{a03368_a7447a8ec8f9460c1b26986a1c37fbc77}{typedef \hyperlink{a01181}{Singleton\+T}\\*
$<$ \hyperlink{a00786}{Loop\+Scheme\+Mask\+Double} $>$ {\bfseries Loop\+Scheme\+Mask\+Double\+Singleton}}\label{a03368_a7447a8ec8f9460c1b26986a1c37fbc77}

\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 1 $>$ \hyperlink{a03368_af746e06878b496778ad9658870c6eeda}{Vec1c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 1 $>$ \hyperlink{a03368_a1f581e843d1bbb433d2164e1b67cc57c}{Vec1uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 1 $>$ \hyperlink{a03368_a922b502594a5e4fd57860779333ba6b3}{Vec1s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 1 $>$ \hyperlink{a03368_a30f095348d3ee156629e4409d03b53d2}{Vec1us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 1 $>$ \hyperlink{a03368_a52dab2f146797c1d6e37559592d7ce5a}{Vec1i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 1 $>$ \hyperlink{a03368_a2fae40cb0a24e3df3f7453dc81e81754}{Vec1ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 1 $>$ \hyperlink{a03368_ac0946677f9bb08a030c7221c0975b06d}{Vec1f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 1 $>$ \hyperlink{a03368_aeab28b6e52cde1cff8334876c4a1aab9}{Vec1d}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 2 $>$ \hyperlink{a03368_a22db9d58f167ccb84b7e1e9623cd446a}{Vec2c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 2 $>$ \hyperlink{a03368_a86d7742a485a6d2e8dbf3e167160167b}{Vec2uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 2 $>$ \hyperlink{a03368_aab2b8603f8aba741e83572ef7b54578e}{Vec2s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 2 $>$ \hyperlink{a03368_a474c8faa7202a0abc4da9f26bb1c6ae0}{Vec2us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 2 $>$ \hyperlink{a03368_a0f69341db63ed339281dfb4f3ef1b82f}{Vec2i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 2 $>$ \hyperlink{a03368_a838e095e4b2af2f5073b34747fd3e802}{Vec2ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 2 $>$ \hyperlink{a03368_abe4bc40898580f1b70eea39adaa4dda0}{Vec2f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 2 $>$ \hyperlink{a03368_a8adbb749b1928ca5dfa079ee0b994fec}{Vec2d}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 3 $>$ \hyperlink{a03368_adf748bba6e26d5ef6936eabe5bd0553b}{Vec3c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 3 $>$ \hyperlink{a03368_a053135905e5cb23084d5ec3bc2aa9d2e}{Vec3uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 3 $>$ \hyperlink{a03368_a775e2f7b2c1c77a657e6e18b21c19015}{Vec3s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 3 $>$ \hyperlink{a03368_a22a4180fb9f7681cf6c479b2ad120460}{Vec3us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 3 $>$ \hyperlink{a03368_a51e2e4ab2eb196df86f7d021c824824f}{Vec3i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 3 $>$ \hyperlink{a03368_aaa215faa771c9ccc150ab3bc1007145a}{Vec3ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 3 $>$ \hyperlink{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 3 $>$ \hyperlink{a03368_aca56e7eac7bf182bfff4ea1841d2cea2}{Vec3d}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ bool, 3 $>$ \hyperlink{a03368_a45fac589d7f9c55b1c7131511b17e6b9}{Vec3b}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 4 $>$ \hyperlink{a03368_a254e9861bcc9a47af6178c9fa7261399}{Vec4c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 4 $>$ \hyperlink{a03368_a0679aaf1401d9d10cbbdf57b4ddddcef}{Vec4uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 4 $>$ \hyperlink{a03368_ab2622e0a32cc9f053c84520813592729}{Vec4s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 4 $>$ \hyperlink{a03368_a5923709edb2577d6d58e44fa44b6b2d7}{Vec4us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 4 $>$ \hyperlink{a03368_a98bcb8a2e79a7f62c7fffebccc466781}{Vec4i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 4 $>$ \hyperlink{a03368_af7d7e0de6ecb4b791776444f2c327c73}{Vec4ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 4 $>$ \hyperlink{a03368_a3b7e6dba036bbefcc461f05db4f7694b}{Vec4f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 4 $>$ \hyperlink{a03368_a63d5db1e7cc9580d64d7a6a9c9c4a09c}{Vec4d}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 5 $>$ \hyperlink{a03368_a421f9e51259cdf65cedfa7465fe8e8f7}{Vec5c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 5 $>$ \hyperlink{a03368_ac4788f3c9b4dd154f1430553e79e347e}{Vec5uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 5 $>$ \hyperlink{a03368_ad0cacc6a9152cf473b5fc0b2bdd66633}{Vec5s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 5 $>$ \hyperlink{a03368_a114b8dec1efe9cc6c5dcc398ec2db10a}{Vec5us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 5 $>$ \hyperlink{a03368_a705eba0d76f1c778e358e7ec17536cc3}{Vec5i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 5 $>$ \hyperlink{a03368_a5de2733a5abb142e23fb2e8a3c221b28}{Vec5ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 5 $>$ \hyperlink{a03368_a155d483431618c28abfb66809ea71fac}{Vec5f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 5 $>$ \hyperlink{a03368_a1b3f41ae1ee97c99fea32e3cb697d4e0}{Vec5d}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed char, 6 $>$ \hyperlink{a03368_a92082b41980d9513fa021da5888e3177}{Vec6c}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned char, 6 $>$ \hyperlink{a03368_a26063822a091276712e911f47c373748}{Vec6uc}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed short \\*
int, 6 $>$ \hyperlink{a03368_a594226249077d4a603eb8a30d9ce2036}{Vec6s}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned \\*
short int, 6 $>$ \hyperlink{a03368_af7af51c975035ccdb38b9d392799ca07}{Vec6us}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ signed int, 6 $>$ \hyperlink{a03368_a25eda5dd23675c7f32d309f64e74b44e}{Vec6i}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ unsigned int, 6 $>$ \hyperlink{a03368_af6172ca2fbe6c65877944661d7bcdc5e}{Vec6ui}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ float, 6 $>$ \hyperlink{a03368_af789d12a4a36583175d247875c5cadcf}{Vec6f}
\item 
typedef \hyperlink{a01409}{Vector\+T}$<$ double, 6 $>$ \hyperlink{a03368_a4990edafce1984fa512d34b0ee38f428}{Vec6d}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T , typename Real $>$ }\\bool \hyperlink{a03368_a82f641ef2370d5bc304e1e764eb0b44b}{is\+\_\+zero} (const T \&\+\_\+a, Real \+\_\+eps)
\item 
\hypertarget{a03368_a008fac326ccfd7a1b96329a4479ca9f6}{{\footnotesize template$<$class T1 , class T2 , typename Real $>$ }\\bool {\bfseries is\+\_\+eq} (const T1 \&a, const T2 \&b, Real \+\_\+eps)}\label{a03368_a008fac326ccfd7a1b96329a4479ca9f6}

\item 
\hypertarget{a03368_a6068816cb348a98341c48809b5a064f7}{{\footnotesize template$<$class T1 , class T2 , typename Real $>$ }\\bool {\bfseries is\+\_\+gt} (const T1 \&a, const T2 \&b, Real \+\_\+eps)}\label{a03368_a6068816cb348a98341c48809b5a064f7}

\item 
\hypertarget{a03368_a68f93868019792a1a5d6ab50c4a77fb5}{{\footnotesize template$<$class T1 , class T2 , typename Real $>$ }\\bool {\bfseries is\+\_\+ge} (const T1 \&a, const T2 \&b, Real \+\_\+eps)}\label{a03368_a68f93868019792a1a5d6ab50c4a77fb5}

\item 
\hypertarget{a03368_ad3587ef836f081d35d6300a802856570}{{\footnotesize template$<$class T1 , class T2 , typename Real $>$ }\\bool {\bfseries is\+\_\+lt} (const T1 \&a, const T2 \&b, Real \+\_\+eps)}\label{a03368_ad3587ef836f081d35d6300a802856570}

\item 
\hypertarget{a03368_a9d9eb3ce817656bb0e3299deb2e67ab1}{{\footnotesize template$<$class T1 , class T2 , typename Real $>$ }\\bool {\bfseries is\+\_\+le} (const T1 \&a, const T2 \&b, Real \+\_\+eps)}\label{a03368_a9d9eb3ce817656bb0e3299deb2e67ab1}

\item 
\hypertarget{a03368_a2fd81f9af86645b454f61e3a9f74ad5b}{float {\bfseries eps\+\_\+\+\_\+} (float)}\label{a03368_a2fd81f9af86645b454f61e3a9f74ad5b}

\item 
\hypertarget{a03368_ab980b92821ed467a951c4f668e23acca}{double {\bfseries eps\+\_\+\+\_\+} (double)}\label{a03368_ab980b92821ed467a951c4f668e23acca}

\item 
\hypertarget{a03368_a50577efa3ee95b0d1952b67748b001a9}{{\footnotesize template$<$class T $>$ }\\bool {\bfseries is\+\_\+zero} (const T \&a)}\label{a03368_a50577efa3ee95b0d1952b67748b001a9}

\item 
\hypertarget{a03368_a25db6d004cacced9540ab9770e7f96cb}{{\footnotesize template$<$class T1 , class T2 $>$ }\\bool {\bfseries is\+\_\+eq} (const T1 \&a, const T2 \&b)}\label{a03368_a25db6d004cacced9540ab9770e7f96cb}

\item 
\hypertarget{a03368_a64e332f4f4ab30f3cfc5d91b71748772}{{\footnotesize template$<$class T1 , class T2 $>$ }\\bool {\bfseries is\+\_\+gt} (const T1 \&a, const T2 \&b)}\label{a03368_a64e332f4f4ab30f3cfc5d91b71748772}

\item 
\hypertarget{a03368_a271f19eed421da4218947432f5f98aaf}{{\footnotesize template$<$class T1 , class T2 $>$ }\\bool {\bfseries is\+\_\+ge} (const T1 \&a, const T2 \&b)}\label{a03368_a271f19eed421da4218947432f5f98aaf}

\item 
\hypertarget{a03368_ab166d04c839af67d9c4b408b5ad4b178}{{\footnotesize template$<$class T1 , class T2 $>$ }\\bool {\bfseries is\+\_\+lt} (const T1 \&a, const T2 \&b)}\label{a03368_ab166d04c839af67d9c4b408b5ad4b178}

\item 
\hypertarget{a03368_aa20f61b2bbc2dc58991dba896716e0e5}{{\footnotesize template$<$class T1 , class T2 $>$ }\\bool {\bfseries is\+\_\+le} (const T1 \&a, const T2 \&b)}\label{a03368_aa20f61b2bbc2dc58991dba896716e0e5}

\item 
\hypertarget{a03368_ad8bd3c89a85bd69fd300e4cd80a947dd}{{\footnotesize template$<$class T $>$ }\\T \hyperlink{a03368_ad8bd3c89a85bd69fd300e4cd80a947dd}{sane\+\_\+aarg} (T \+\_\+aarg)}\label{a03368_ad8bd3c89a85bd69fd300e4cd80a947dd}

\begin{DoxyCompactList}\small\item\em Trigonometry/angles -\/ related. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T $>$ }\\T \hyperlink{a03368_a39010bd91c5088f5c36a3ef2b1e6e697}{angle} (T \+\_\+cos\+\_\+angle, T \+\_\+sin\+\_\+angle)
\item 
\hypertarget{a03368_adc9cd93b72fba906387e9ca285f00f7d}{{\footnotesize template$<$class T $>$ }\\T {\bfseries positive\+\_\+angle} (T \+\_\+angle)}\label{a03368_adc9cd93b72fba906387e9ca285f00f7d}

\item 
\hypertarget{a03368_a69498d2f6224f9e276531d073547e6cf}{{\footnotesize template$<$class T $>$ }\\T {\bfseries positive\+\_\+angle} (T \+\_\+cos\+\_\+angle, T \+\_\+sin\+\_\+angle)}\label{a03368_a69498d2f6224f9e276531d073547e6cf}

\item 
\hypertarget{a03368_aa30a79214fde50d0674fa560b90c37fc}{{\footnotesize template$<$class T $>$ }\\T {\bfseries deg\+\_\+to\+\_\+rad} (const T \&\+\_\+angle)}\label{a03368_aa30a79214fde50d0674fa560b90c37fc}

\item 
\hypertarget{a03368_a52274229b3c73af97b1c1ff8843b3ef0}{{\footnotesize template$<$class T $>$ }\\T {\bfseries rad\+\_\+to\+\_\+deg} (const T \&\+\_\+angle)}\label{a03368_a52274229b3c73af97b1c1ff8843b3ef0}

\item 
\hypertarget{a03368_a767ccc7db22d4dc355c6ed6d576f7516}{double {\bfseries log\+\_\+} (double \+\_\+value)}\label{a03368_a767ccc7db22d4dc355c6ed6d576f7516}

\item 
\hypertarget{a03368_a7a3182a3f1d2d06700b6e28b8f3956f3}{{\footnotesize template$<$typename Scalar , int D\+I\+M, typename Other\+Scalar $>$ }\\auto \hyperlink{a03368_a7a3182a3f1d2d06700b6e28b8f3956f3}{operator$\ast$} (const Other\+Scalar \&\+\_\+s, const \hyperlink{a01409}{Vector\+T}$<$ Scalar, D\+I\+M $>$ \&rhs) -\/$>$ decltype(rhs.\+operator$\ast$(\+\_\+s))}\label{a03368_a7a3182a3f1d2d06700b6e28b8f3956f3}

\begin{DoxyCompactList}\small\item\em Component wise multiplication from the left. \end{DoxyCompactList}\item 
\hypertarget{a03368_a40a56baee75b61354d00aa1600716f85}{{\footnotesize template$<$typename Scalar , int D\+I\+M$>$ }\\auto \hyperlink{a03368_a40a56baee75b61354d00aa1600716f85}{operator$<$$<$} (std\+::ostream \&os, const \hyperlink{a01409}{Vector\+T}$<$ Scalar, D\+I\+M $>$ \&\+\_\+vec) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(os$<$$<$ \+\_\+vec\mbox{[}0\mbox{]})) $>$=0}\label{a03368_a40a56baee75b61354d00aa1600716f85}

\begin{DoxyCompactList}\small\item\em output a vector by printing its space-\/separated compontens \end{DoxyCompactList}\item 
\hypertarget{a03368_a2de6794d235e7625396f271f323e397c}{{\bfseries for} (int i=1;i$<$ D\+I\+M;++i)}\label{a03368_a2de6794d235e7625396f271f323e397c}

\item 
\hypertarget{a03368_abb20deed1b11439e61c4a0c70d0a50e2}{{\footnotesize template$<$typename Scalar , int D\+I\+M$>$ }\\auto \hyperlink{a03368_abb20deed1b11439e61c4a0c70d0a50e2}{operator$>$$>$} (std\+::istream \&is, \hyperlink{a01409}{Vector\+T}$<$ Scalar, D\+I\+M $>$ \&\+\_\+vec) -\/$>$ typename std\+::enable\+\_\+if$<$ sizeof(decltype(is $>$$>$ \+\_\+vec\mbox{[}0\mbox{]})) $>$=0}\label{a03368_abb20deed1b11439e61c4a0c70d0a50e2}

\begin{DoxyCompactList}\small\item\em read the space-\/separated components of a vector from a stream \end{DoxyCompactList}\item 
\hypertarget{a03368_a4c09797de0c6dd5dd8ab39252a7c752a}{{\footnotesize template$<$class Traits $>$ }\\\hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \& {\bfseries T\+R\+I\+M\+E\+S\+H\+\_\+\+C\+A\+S\+T} (\hyperlink{a00991}{Poly\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \&\+\_\+poly\+\_\+mesh)}\label{a03368_a4c09797de0c6dd5dd8ab39252a7c752a}

\item 
\hypertarget{a03368_a95c5c314ee7a67ac0bd3718056325bbd}{{\footnotesize template$<$class Traits $>$ }\\const \hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}\\*
$<$ Traits $>$ \& {\bfseries T\+R\+I\+M\+E\+S\+H\+\_\+\+C\+A\+S\+T} (const \hyperlink{a00991}{Poly\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \&\+\_\+poly\+\_\+mesh)}\label{a03368_a95c5c314ee7a67ac0bd3718056325bbd}

\item 
\hypertarget{a03368_a5562eecc8325992d5d171e9b7cf65499}{{\footnotesize template$<$class Traits $>$ }\\\hyperlink{a00991}{Poly\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \& {\bfseries P\+O\+L\+Y\+M\+E\+S\+H\+\_\+\+C\+A\+S\+T} (\hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \&\+\_\+tri\+\_\+mesh)}\label{a03368_a5562eecc8325992d5d171e9b7cf65499}

\item 
\hypertarget{a03368_a3d8b505e7c833b05c38514e6038f27f4}{{\footnotesize template$<$class Traits $>$ }\\const \hyperlink{a00991}{Poly\+Mesh\+\_\+\+Array\+Kernel\+T}\\*
$<$ Traits $>$ \& {\bfseries P\+O\+L\+Y\+M\+E\+S\+H\+\_\+\+C\+A\+S\+T} (const \hyperlink{a01335}{Tri\+Mesh\+\_\+\+Array\+Kernel\+T}$<$ Traits $>$ \&\+\_\+tri\+\_\+mesh)}\label{a03368_a3d8b505e7c833b05c38514e6038f27f4}

\item 
\hypertarget{a03368_ad661efc044ffca55028a7a9df42cdeb7}{size\+\_\+t {\bfseries hash\+\_\+value} (const \hyperlink{a00317}{Base\+Handle} \&h)}\label{a03368_ad661efc044ffca55028a7a9df42cdeb7}

\item 
\hypertarget{a03368_a41d251aed8fdc5b7e9397141b58eacc7}{std\+::ostream \& \hyperlink{a03368_a41d251aed8fdc5b7e9397141b58eacc7}{operator$<$$<$} (std\+::ostream \&\+\_\+os, const \hyperlink{a00317}{Base\+Handle} \&\+\_\+hnd)}\label{a03368_a41d251aed8fdc5b7e9397141b58eacc7}

\begin{DoxyCompactList}\small\item\em Write handle {\ttfamily \+\_\+hnd} to stream {\ttfamily \+\_\+os}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename L\+H\+S , typename K\+E\+R\+N\+E\+L $>$ }\\L\+H\+S \hyperlink{a03368_ac0f75aab1c554cfcdf72a61c09d1ab36}{mesh\+\_\+cast} (\hyperlink{a00994}{Poly\+Mesh\+T}$<$ K\+E\+R\+N\+E\+L $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Cast a mesh with different but identical traits into each other. \end{DoxyCompactList}\item 
\hypertarget{a03368_ae94f6e8b5307ad0b4bb96f1cf0c7745b}{{\footnotesize template$<$typename L\+H\+S , typename K\+E\+R\+N\+E\+L $>$ }\\L\+H\+S {\bfseries mesh\+\_\+cast} (\hyperlink{a00994}{Poly\+Mesh\+T}$<$ K\+E\+R\+N\+E\+L $>$ $\ast$rhs)}\label{a03368_ae94f6e8b5307ad0b4bb96f1cf0c7745b}

\item 
\hypertarget{a03368_a269684927ebb3382ecb55ae27f25c80a}{{\footnotesize template$<$typename L\+H\+S , typename K\+E\+R\+N\+E\+L $>$ }\\const L\+H\+S {\bfseries mesh\+\_\+cast} (const \hyperlink{a00994}{Poly\+Mesh\+T}$<$ K\+E\+R\+N\+E\+L $>$ \&rhs)}\label{a03368_a269684927ebb3382ecb55ae27f25c80a}

\item 
\hypertarget{a03368_a9a3d3797a6f4e82702cd63d17495e25a}{{\footnotesize template$<$typename L\+H\+S , typename K\+E\+R\+N\+E\+L $>$ }\\const L\+H\+S {\bfseries mesh\+\_\+cast} (const \hyperlink{a00994}{Poly\+Mesh\+T}$<$ K\+E\+R\+N\+E\+L $>$ $\ast$rhs)}\label{a03368_a9a3d3797a6f4e82702cd63d17495e25a}

\item 
\hypertarget{a03368_a290da4d24c4dbd3a7062d08dcd31d60c}{\hyperlink{a03368_a290da4d24c4dbd3a7062d08dcd31d60c}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt4f)}\label{a03368_a290da4d24c4dbd3a7062d08dcd31d60c}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a9b1f755986d596afc5d11ec50df433d9}{\hyperlink{a03368_a9b1f755986d596afc5d11ec50df433d9}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt3f)}\label{a03368_a9b1f755986d596afc5d11ec50df433d9}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_ae2bbd824b8023d3a0cc46be3b3e86a9c}{\hyperlink{a03368_ae2bbd824b8023d3a0cc46be3b3e86a9c}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt2f)}\label{a03368_ae2bbd824b8023d3a0cc46be3b3e86a9c}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a18631aa388e04034302a80d893b435f1}{\hyperlink{a03368_a18631aa388e04034302a80d893b435f1}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec4f)}\label{a03368_a18631aa388e04034302a80d893b435f1}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_ae135f950a44ca28f459f60a5876b2238}{\hyperlink{a03368_ae135f950a44ca28f459f60a5876b2238}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec3f)}\label{a03368_ae135f950a44ca28f459f60a5876b2238}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_ac5bf6e44c02a975720ccb077122e5605}{\hyperlink{a03368_ac5bf6e44c02a975720ccb077122e5605}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec2f)}\label{a03368_ac5bf6e44c02a975720ccb077122e5605}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a3f8fdc3515388da6da8a0e695da7c0eb}{\hyperlink{a03368_a3f8fdc3515388da6da8a0e695da7c0eb}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt4d)}\label{a03368_a3f8fdc3515388da6da8a0e695da7c0eb}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a9583c171b399d5f1c43ef5c9fa42f923}{\hyperlink{a03368_a9583c171b399d5f1c43ef5c9fa42f923}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt3d)}\label{a03368_a9583c171b399d5f1c43ef5c9fa42f923}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a831e8d7ab274fa65f0cc21bbe0a7708b}{\hyperlink{a03368_a831e8d7ab274fa65f0cc21bbe0a7708b}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Pnt2d)}\label{a03368_a831e8d7ab274fa65f0cc21bbe0a7708b}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a635e2921057cb33f62045af6ad7a9662}{\hyperlink{a03368_a635e2921057cb33f62045af6ad7a9662}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec4d)}\label{a03368_a635e2921057cb33f62045af6ad7a9662}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a0c190b30aba42bf6844c4f86aca754c9}{\hyperlink{a03368_a0c190b30aba42bf6844c4f86aca754c9}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec3d)}\label{a03368_a0c190b30aba42bf6844c4f86aca754c9}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_abccc7a9517a25fd571962b606a482df2}{\hyperlink{a03368_abccc7a9517a25fd571962b606a482df2}{O\+S\+G\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Vec4ub)}\label{a03368_abccc7a9517a25fd571962b606a482df2}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G vector type. \end{DoxyCompactList}\item 
\hypertarget{a03368_ac5feadbc7d8934ec76de11cbe38cb7ea}{\hyperlink{a03368_ac5feadbc7d8934ec76de11cbe38cb7ea}{O\+S\+G\+\_\+\+C\+O\+L\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Color3ub, 3)}\label{a03368_ac5feadbc7d8934ec76de11cbe38cb7ea}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G color type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a6a19d0f71e9b2c15ec36ff7e2b2f26fb}{\hyperlink{a03368_a6a19d0f71e9b2c15ec36ff7e2b2f26fb}{O\+S\+G\+\_\+\+C\+O\+L\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Color4ub, 4)}\label{a03368_a6a19d0f71e9b2c15ec36ff7e2b2f26fb}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G color type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a363bc47e1a70d337b2a7cd5952aa3a11}{\hyperlink{a03368_a363bc47e1a70d337b2a7cd5952aa3a11}{O\+S\+G\+\_\+\+C\+O\+L\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Color3f, 3)}\label{a03368_a363bc47e1a70d337b2a7cd5952aa3a11}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G color type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a17596177c3026b8951b01601436cc605}{\hyperlink{a03368_a17596177c3026b8951b01601436cc605}{O\+S\+G\+\_\+\+C\+O\+L\+O\+R\+\_\+\+T\+R\+A\+I\+T\+S} (osg\+::\+Color4f, 4)}\label{a03368_a17596177c3026b8951b01601436cc605}

\begin{DoxyCompactList}\small\item\em Vector traits for Open\+S\+G color type. \end{DoxyCompactList}\item 
\hypertarget{a03368_a0131b13be594e8f7fa463ea9fa0b5f0c}{\hyperlink{a03368_a0131b13be594e8f7fa463ea9fa0b5f0c}{P\+N\+T2\+V\+E\+C\+\_\+\+C\+A\+S\+T\+E\+R} (osg\+::\+Vec3f, osg\+::\+Pnt3f)}\label{a03368_a0131b13be594e8f7fa463ea9fa0b5f0c}

\begin{DoxyCompactList}\small\item\em convert Pnt3f to Vec3f \end{DoxyCompactList}\item 
\hypertarget{a03368_a3a7714689cba03f71513b09f5e196e0f}{\hyperlink{a03368_a3a7714689cba03f71513b09f5e196e0f}{P\+N\+T2\+V\+E\+C\+\_\+\+C\+A\+S\+T\+E\+R} (osg\+::\+Vec4f, osg\+::\+Pnt4f)}\label{a03368_a3a7714689cba03f71513b09f5e196e0f}

\begin{DoxyCompactList}\small\item\em convert Pnt4f to Vec4f \end{DoxyCompactList}\item 
\hypertarget{a03368_a3208a7bb4a48f6f3a445da7f6018e4d0}{\hyperlink{a03368_a3208a7bb4a48f6f3a445da7f6018e4d0}{P\+N\+T2\+V\+E\+C\+\_\+\+C\+A\+S\+T\+E\+R} (osg\+::\+Vec3d, osg\+::\+Pnt3d)}\label{a03368_a3208a7bb4a48f6f3a445da7f6018e4d0}

\begin{DoxyCompactList}\small\item\em convert Pnt3d to Vec3d \end{DoxyCompactList}\item 
\hypertarget{a03368_a65de89380728bec87b5975c8fb5b99e0}{\hyperlink{a03368_a65de89380728bec87b5975c8fb5b99e0}{P\+N\+T2\+V\+E\+C\+\_\+\+C\+A\+S\+T\+E\+R} (osg\+::\+Vec4d, osg\+::\+Pnt4d)}\label{a03368_a65de89380728bec87b5975c8fb5b99e0}

\begin{DoxyCompactList}\small\item\em convert Pnt4d to Vec4d \end{DoxyCompactList}\item 
\hypertarget{a03368_a9f06ee8b99347ea2d766f8a15f02bd46}{{\footnotesize template$<$class \+\_\+\+Mesh , class \+\_\+\+Property\+Handle $>$ }\\void {\bfseries smooth\+\_\+mesh\+\_\+property} (unsigned int \+\_\+n\+\_\+iters, \+\_\+\+Mesh \&\+\_\+m, \+\_\+\+Property\+Handle \+\_\+pph)}\label{a03368_a9f06ee8b99347ea2d766f8a15f02bd46}

\item 
\hypertarget{a03368_a977a31f169b69bfdb237c90d42bb3f67}{{\footnotesize template$<$class \+\_\+\+Mesh $>$ }\\void {\bfseries smooth\+\_\+mesh} (\+\_\+\+Mesh \&\+\_\+m, uint \+\_\+n\+\_\+iters)}\label{a03368_a977a31f169b69bfdb237c90d42bb3f67}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Cast vector type to another vector type.}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a03368_a6bd9c6555d30f75e4de638b1c782ad42}{{\footnotesize template$<$typename src\+\_\+t , typename dst\+\_\+t , int n$>$ }\\void \hyperlink{a03368_a6bd9c6555d30f75e4de638b1c782ad42}{vector\+\_\+cast} (const src\+\_\+t \&\+\_\+src, dst\+\_\+t \&\+\_\+dst, Gen\+Prog\+::\+Int2\+Type$<$ n $>$)}\label{a03368_a6bd9c6555d30f75e4de638b1c782ad42}

\begin{DoxyCompactList}\small\item\em Cast vector type to another vector type by copying the vector elements. \end{DoxyCompactList}\item 
\hypertarget{a03368_a4c9027c3e378b0e16c62f6bc7b61fdf9}{{\footnotesize template$<$typename src\+\_\+t , typename dst\+\_\+t $>$ }\\void \hyperlink{a03368_a4c9027c3e378b0e16c62f6bc7b61fdf9}{vector\+\_\+cast} (const src\+\_\+t \&, dst\+\_\+t \&, Gen\+Prog\+::\+Int2\+Type$<$ 0 $>$)}\label{a03368_a4c9027c3e378b0e16c62f6bc7b61fdf9}

\begin{DoxyCompactList}\small\item\em Cast vector type to another vector type by copying the vector elements. \end{DoxyCompactList}\item 
\hypertarget{a03368_ae0287f19025fd1b249471f63a8c47d71}{{\footnotesize template$<$typename src\+\_\+t , typename dst\+\_\+t , int n$>$ }\\void \hyperlink{a03368_ae0287f19025fd1b249471f63a8c47d71}{vector\+\_\+copy} (const src\+\_\+t \&\+\_\+src, dst\+\_\+t \&\+\_\+dst, Gen\+Prog\+::\+Int2\+Type$<$ n $>$)}\label{a03368_ae0287f19025fd1b249471f63a8c47d71}

\begin{DoxyCompactList}\small\item\em Cast vector type to another vector type by copying the vector elements. \end{DoxyCompactList}\item 
\hypertarget{a03368_aa8c0ae097da7611ac569dcdd7f9c88d6}{{\footnotesize template$<$typename src\+\_\+t , typename dst\+\_\+t $>$ }\\void \hyperlink{a03368_aa8c0ae097da7611ac569dcdd7f9c88d6}{vector\+\_\+copy} (const src\+\_\+t \&, dst\+\_\+t \&, Gen\+Prog\+::\+Int2\+Type$<$ 0 $>$)}\label{a03368_aa8c0ae097da7611ac569dcdd7f9c88d6}

\begin{DoxyCompactList}\small\item\em Cast vector type to another vector type by copying the vector elements. \end{DoxyCompactList}\item 
\hypertarget{a03368_ad0d391915b6a74c2ed33aff7f78f1175}{{\footnotesize template$<$typename dst\+\_\+t , typename src\+\_\+t $>$ }\\vector\+\_\+caster$<$ dst\+\_\+t, src\+\_\+t $>$\\*
\+::return\+\_\+type \hyperlink{a03368_ad0d391915b6a74c2ed33aff7f78f1175}{vector\+\_\+cast} (const src\+\_\+t \&\+\_\+src)}\label{a03368_ad0d391915b6a74c2ed33aff7f78f1175}

\begin{DoxyCompactList}\small\item\em Cast vector type to another vector type by copying the vector elements. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
{\bf }\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a03368_a351b282a40719408090277956e526735}{osg\+::\+Vec3f\+::\+Value\+Type \hyperlink{a03368_a351b282a40719408090277956e526735}{dot} (const osg\+::\+Vec3f \&\+\_\+v1, const osg\+::\+Vec3f \&\+\_\+v2)}\label{a03368_a351b282a40719408090277956e526735}

\begin{DoxyCompactList}\small\item\em Adapter for osg vector member computing a scalar product. \end{DoxyCompactList}\item 
\hypertarget{a03368_a41399efe66881aa33dd5993f6ccd9664}{osg\+::\+Vec3f\+::\+Value\+Type \hyperlink{a03368_a41399efe66881aa33dd5993f6ccd9664}{dot} (const osg\+::\+Vec3f \&\+\_\+v1, const osg\+::\+Pnt3f \&\+\_\+v2)}\label{a03368_a41399efe66881aa33dd5993f6ccd9664}

\begin{DoxyCompactList}\small\item\em Adapter for osg vector member computing a scalar product. \end{DoxyCompactList}\item 
\hypertarget{a03368_aaa412457a62231acf84f09c011a47231}{osg\+::\+Vec2f\+::\+Value\+Type \hyperlink{a03368_aaa412457a62231acf84f09c011a47231}{dot} (const osg\+::\+Vec2f \&\+\_\+v1, const osg\+::\+Vec2f \&\+\_\+v2)}\label{a03368_aaa412457a62231acf84f09c011a47231}

\begin{DoxyCompactList}\small\item\em Adapter for osg vector member computing a scalar product. \end{DoxyCompactList}\item 
\hypertarget{a03368_af37af4054108f1fef53058ff57689763}{osg\+::\+Vec3f \hyperlink{a03368_af37af4054108f1fef53058ff57689763}{cross} (const osg\+::\+Vec3f \&\+\_\+v1, const osg\+::\+Vec3f \&\+\_\+v2)}\label{a03368_af37af4054108f1fef53058ff57689763}

\begin{DoxyCompactList}\small\item\em Adapter for osg vector member computing a scalar product. \end{DoxyCompactList}\end{DoxyCompactItemize}

\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a03368_a5ec0cded55d34ef7e4d4cbbcb41e92e8}{const float {\bfseries flt\+\_\+eps\+\_\+\+\_\+} = (float)1e-\/05}\label{a03368_a5ec0cded55d34ef7e4d4cbbcb41e92e8}

\item 
\hypertarget{a03368_a243184cbc542dc5e8aa87b91bfdc0972}{const double {\bfseries dbl\+\_\+eps\+\_\+\+\_\+} = 1e-\/09}\label{a03368_a243184cbc542dc5e8aa87b91bfdc0972}

\item 
\hypertarget{a03368_ae41313687bd8b61449eb1b8bc682f6cd}{return {\bfseries os}}\label{a03368_ae41313687bd8b61449eb1b8bc682f6cd}

\item 
\hypertarget{a03368_a683a24b084e96af090c73627d7950b06}{return {\bfseries is}}\label{a03368_a683a24b084e96af090c73627d7950b06}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels and mesh traits.

Martin, 26.\+12.\+2004\+: 1) replaced resize(size()-\/1) with pop\+\_\+back(), since the later is more efficient 2) replaced interface\+\_\+.\+set\+\_\+heap\+\_\+position(entry(0), -\/1); with reset\+\_\+heap\+\_\+position() 3) added const modifier to various functions T\+O\+D\+O\+: in the moment the heap does not conform to the Heap\+Interface specification, i.\+e., copies are passed instead of references. This is especially important for set\+\_\+heap\+\_\+position(), where the reference argument is non-\/const. The specification should be changed to reflect that the heap actually (only?) works when the heap entry is nothing more but a handle. T\+O\+D\+O\+: change the specification of Heap\+Interface to make less(), greater() and get\+\_\+heap\+\_\+position() const. Needs changing Decimater\+T. Might break someone's code. 

\subsection{Typedef Documentation}
\hypertarget{a03368_af746e06878b496778ad9658870c6eeda}{\index{Open\+Mesh@{Open\+Mesh}!Vec1c@{Vec1c}}
\index{Vec1c@{Vec1c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 1 $>$ {\bf Open\+Mesh\+::\+Vec1c}}}\label{a03368_af746e06878b496778ad9658870c6eeda}
1-\/byte signed vector 

Definition at line 723 of file Vector11\+T.\+hh.

\hypertarget{a03368_aeab28b6e52cde1cff8334876c4a1aab9}{\index{Open\+Mesh@{Open\+Mesh}!Vec1d@{Vec1d}}
\index{Vec1d@{Vec1d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 1 $>$ {\bf Open\+Mesh\+::\+Vec1d}}}\label{a03368_aeab28b6e52cde1cff8334876c4a1aab9}
1-\/double vector 

Definition at line 737 of file Vector11\+T.\+hh.

\hypertarget{a03368_ac0946677f9bb08a030c7221c0975b06d}{\index{Open\+Mesh@{Open\+Mesh}!Vec1f@{Vec1f}}
\index{Vec1f@{Vec1f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 1 $>$ {\bf Open\+Mesh\+::\+Vec1f}}}\label{a03368_ac0946677f9bb08a030c7221c0975b06d}
1-\/float vector 

Definition at line 735 of file Vector11\+T.\+hh.

\hypertarget{a03368_a52dab2f146797c1d6e37559592d7ce5a}{\index{Open\+Mesh@{Open\+Mesh}!Vec1i@{Vec1i}}
\index{Vec1i@{Vec1i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 1 $>$ {\bf Open\+Mesh\+::\+Vec1i}}}\label{a03368_a52dab2f146797c1d6e37559592d7ce5a}
1-\/int signed vector 

Definition at line 731 of file Vector11\+T.\+hh.

\hypertarget{a03368_a922b502594a5e4fd57860779333ba6b3}{\index{Open\+Mesh@{Open\+Mesh}!Vec1s@{Vec1s}}
\index{Vec1s@{Vec1s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 1 $>$ {\bf Open\+Mesh\+::\+Vec1s}}}\label{a03368_a922b502594a5e4fd57860779333ba6b3}
1-\/short signed vector 

Definition at line 727 of file Vector11\+T.\+hh.

\hypertarget{a03368_a1f581e843d1bbb433d2164e1b67cc57c}{\index{Open\+Mesh@{Open\+Mesh}!Vec1uc@{Vec1uc}}
\index{Vec1uc@{Vec1uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 1 $>$ {\bf Open\+Mesh\+::\+Vec1uc}}}\label{a03368_a1f581e843d1bbb433d2164e1b67cc57c}
1-\/byte unsigned vector 

Definition at line 725 of file Vector11\+T.\+hh.

\hypertarget{a03368_a2fae40cb0a24e3df3f7453dc81e81754}{\index{Open\+Mesh@{Open\+Mesh}!Vec1ui@{Vec1ui}}
\index{Vec1ui@{Vec1ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 1 $>$ {\bf Open\+Mesh\+::\+Vec1ui}}}\label{a03368_a2fae40cb0a24e3df3f7453dc81e81754}
1-\/int unsigned vector 

Definition at line 733 of file Vector11\+T.\+hh.

\hypertarget{a03368_a30f095348d3ee156629e4409d03b53d2}{\index{Open\+Mesh@{Open\+Mesh}!Vec1us@{Vec1us}}
\index{Vec1us@{Vec1us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec1us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 1 $>$ {\bf Open\+Mesh\+::\+Vec1us}}}\label{a03368_a30f095348d3ee156629e4409d03b53d2}
1-\/short unsigned vector 

Definition at line 729 of file Vector11\+T.\+hh.

\hypertarget{a03368_a22db9d58f167ccb84b7e1e9623cd446a}{\index{Open\+Mesh@{Open\+Mesh}!Vec2c@{Vec2c}}
\index{Vec2c@{Vec2c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 2 $>$ {\bf Open\+Mesh\+::\+Vec2c}}}\label{a03368_a22db9d58f167ccb84b7e1e9623cd446a}
2-\/byte signed vector 

Definition at line 740 of file Vector11\+T.\+hh.

\hypertarget{a03368_a8adbb749b1928ca5dfa079ee0b994fec}{\index{Open\+Mesh@{Open\+Mesh}!Vec2d@{Vec2d}}
\index{Vec2d@{Vec2d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 2 $>$ {\bf Open\+Mesh\+::\+Vec2d}}}\label{a03368_a8adbb749b1928ca5dfa079ee0b994fec}
2-\/double vector 

Definition at line 754 of file Vector11\+T.\+hh.

\hypertarget{a03368_abe4bc40898580f1b70eea39adaa4dda0}{\index{Open\+Mesh@{Open\+Mesh}!Vec2f@{Vec2f}}
\index{Vec2f@{Vec2f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 2 $>$ {\bf Open\+Mesh\+::\+Vec2f}}}\label{a03368_abe4bc40898580f1b70eea39adaa4dda0}
2-\/float vector 

Definition at line 752 of file Vector11\+T.\+hh.

\hypertarget{a03368_a0f69341db63ed339281dfb4f3ef1b82f}{\index{Open\+Mesh@{Open\+Mesh}!Vec2i@{Vec2i}}
\index{Vec2i@{Vec2i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 2 $>$ {\bf Open\+Mesh\+::\+Vec2i}}}\label{a03368_a0f69341db63ed339281dfb4f3ef1b82f}
2-\/int signed vector 

Definition at line 748 of file Vector11\+T.\+hh.

\hypertarget{a03368_aab2b8603f8aba741e83572ef7b54578e}{\index{Open\+Mesh@{Open\+Mesh}!Vec2s@{Vec2s}}
\index{Vec2s@{Vec2s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 2 $>$ {\bf Open\+Mesh\+::\+Vec2s}}}\label{a03368_aab2b8603f8aba741e83572ef7b54578e}
2-\/short signed vector 

Definition at line 744 of file Vector11\+T.\+hh.

\hypertarget{a03368_a86d7742a485a6d2e8dbf3e167160167b}{\index{Open\+Mesh@{Open\+Mesh}!Vec2uc@{Vec2uc}}
\index{Vec2uc@{Vec2uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 2 $>$ {\bf Open\+Mesh\+::\+Vec2uc}}}\label{a03368_a86d7742a485a6d2e8dbf3e167160167b}
2-\/byte unsigned vector 

Definition at line 742 of file Vector11\+T.\+hh.

\hypertarget{a03368_a838e095e4b2af2f5073b34747fd3e802}{\index{Open\+Mesh@{Open\+Mesh}!Vec2ui@{Vec2ui}}
\index{Vec2ui@{Vec2ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 2 $>$ {\bf Open\+Mesh\+::\+Vec2ui}}}\label{a03368_a838e095e4b2af2f5073b34747fd3e802}
2-\/int unsigned vector 

Definition at line 750 of file Vector11\+T.\+hh.

\hypertarget{a03368_a474c8faa7202a0abc4da9f26bb1c6ae0}{\index{Open\+Mesh@{Open\+Mesh}!Vec2us@{Vec2us}}
\index{Vec2us@{Vec2us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec2us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 2 $>$ {\bf Open\+Mesh\+::\+Vec2us}}}\label{a03368_a474c8faa7202a0abc4da9f26bb1c6ae0}
2-\/short unsigned vector 

Definition at line 746 of file Vector11\+T.\+hh.

\hypertarget{a03368_a45fac589d7f9c55b1c7131511b17e6b9}{\index{Open\+Mesh@{Open\+Mesh}!Vec3b@{Vec3b}}
\index{Vec3b@{Vec3b}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3b}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ bool, 3 $>$ {\bf Open\+Mesh\+::\+Vec3b}}}\label{a03368_a45fac589d7f9c55b1c7131511b17e6b9}
3-\/bool vector 

Definition at line 773 of file Vector11\+T.\+hh.

\hypertarget{a03368_adf748bba6e26d5ef6936eabe5bd0553b}{\index{Open\+Mesh@{Open\+Mesh}!Vec3c@{Vec3c}}
\index{Vec3c@{Vec3c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 3 $>$ {\bf Open\+Mesh\+::\+Vec3c}}}\label{a03368_adf748bba6e26d5ef6936eabe5bd0553b}
3-\/byte signed vector 

Definition at line 757 of file Vector11\+T.\+hh.

\hypertarget{a03368_aca56e7eac7bf182bfff4ea1841d2cea2}{\index{Open\+Mesh@{Open\+Mesh}!Vec3d@{Vec3d}}
\index{Vec3d@{Vec3d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 3 $>$ {\bf Open\+Mesh\+::\+Vec3d}}}\label{a03368_aca56e7eac7bf182bfff4ea1841d2cea2}
3-\/double vector 

Definition at line 771 of file Vector11\+T.\+hh.

\hypertarget{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}{\index{Open\+Mesh@{Open\+Mesh}!Vec3f@{Vec3f}}
\index{Vec3f@{Vec3f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 3 $>$ {\bf Open\+Mesh\+::\+Vec3f}}}\label{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}
3-\/float vector 

Definition at line 769 of file Vector11\+T.\+hh.

\hypertarget{a03368_a51e2e4ab2eb196df86f7d021c824824f}{\index{Open\+Mesh@{Open\+Mesh}!Vec3i@{Vec3i}}
\index{Vec3i@{Vec3i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 3 $>$ {\bf Open\+Mesh\+::\+Vec3i}}}\label{a03368_a51e2e4ab2eb196df86f7d021c824824f}
3-\/int signed vector 

Definition at line 765 of file Vector11\+T.\+hh.

\hypertarget{a03368_a775e2f7b2c1c77a657e6e18b21c19015}{\index{Open\+Mesh@{Open\+Mesh}!Vec3s@{Vec3s}}
\index{Vec3s@{Vec3s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 3 $>$ {\bf Open\+Mesh\+::\+Vec3s}}}\label{a03368_a775e2f7b2c1c77a657e6e18b21c19015}
3-\/short signed vector 

Definition at line 761 of file Vector11\+T.\+hh.

\hypertarget{a03368_a053135905e5cb23084d5ec3bc2aa9d2e}{\index{Open\+Mesh@{Open\+Mesh}!Vec3uc@{Vec3uc}}
\index{Vec3uc@{Vec3uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 3 $>$ {\bf Open\+Mesh\+::\+Vec3uc}}}\label{a03368_a053135905e5cb23084d5ec3bc2aa9d2e}
3-\/byte unsigned vector 

Definition at line 759 of file Vector11\+T.\+hh.

\hypertarget{a03368_aaa215faa771c9ccc150ab3bc1007145a}{\index{Open\+Mesh@{Open\+Mesh}!Vec3ui@{Vec3ui}}
\index{Vec3ui@{Vec3ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 3 $>$ {\bf Open\+Mesh\+::\+Vec3ui}}}\label{a03368_aaa215faa771c9ccc150ab3bc1007145a}
3-\/int unsigned vector 

Definition at line 767 of file Vector11\+T.\+hh.

\hypertarget{a03368_a22a4180fb9f7681cf6c479b2ad120460}{\index{Open\+Mesh@{Open\+Mesh}!Vec3us@{Vec3us}}
\index{Vec3us@{Vec3us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec3us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 3 $>$ {\bf Open\+Mesh\+::\+Vec3us}}}\label{a03368_a22a4180fb9f7681cf6c479b2ad120460}
3-\/short unsigned vector 

Definition at line 763 of file Vector11\+T.\+hh.

\hypertarget{a03368_a254e9861bcc9a47af6178c9fa7261399}{\index{Open\+Mesh@{Open\+Mesh}!Vec4c@{Vec4c}}
\index{Vec4c@{Vec4c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 4 $>$ {\bf Open\+Mesh\+::\+Vec4c}}}\label{a03368_a254e9861bcc9a47af6178c9fa7261399}
4-\/byte signed vector 

Definition at line 776 of file Vector11\+T.\+hh.

\hypertarget{a03368_a63d5db1e7cc9580d64d7a6a9c9c4a09c}{\index{Open\+Mesh@{Open\+Mesh}!Vec4d@{Vec4d}}
\index{Vec4d@{Vec4d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 4 $>$ {\bf Open\+Mesh\+::\+Vec4d}}}\label{a03368_a63d5db1e7cc9580d64d7a6a9c9c4a09c}
4-\/double vector 

Definition at line 790 of file Vector11\+T.\+hh.

\hypertarget{a03368_a3b7e6dba036bbefcc461f05db4f7694b}{\index{Open\+Mesh@{Open\+Mesh}!Vec4f@{Vec4f}}
\index{Vec4f@{Vec4f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 4 $>$ {\bf Open\+Mesh\+::\+Vec4f}}}\label{a03368_a3b7e6dba036bbefcc461f05db4f7694b}
4-\/float vector 

Definition at line 788 of file Vector11\+T.\+hh.

\hypertarget{a03368_a98bcb8a2e79a7f62c7fffebccc466781}{\index{Open\+Mesh@{Open\+Mesh}!Vec4i@{Vec4i}}
\index{Vec4i@{Vec4i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 4 $>$ {\bf Open\+Mesh\+::\+Vec4i}}}\label{a03368_a98bcb8a2e79a7f62c7fffebccc466781}
4-\/int signed vector 

Definition at line 784 of file Vector11\+T.\+hh.

\hypertarget{a03368_ab2622e0a32cc9f053c84520813592729}{\index{Open\+Mesh@{Open\+Mesh}!Vec4s@{Vec4s}}
\index{Vec4s@{Vec4s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 4 $>$ {\bf Open\+Mesh\+::\+Vec4s}}}\label{a03368_ab2622e0a32cc9f053c84520813592729}
4-\/short signed vector 

Definition at line 780 of file Vector11\+T.\+hh.

\hypertarget{a03368_a0679aaf1401d9d10cbbdf57b4ddddcef}{\index{Open\+Mesh@{Open\+Mesh}!Vec4uc@{Vec4uc}}
\index{Vec4uc@{Vec4uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 4 $>$ {\bf Open\+Mesh\+::\+Vec4uc}}}\label{a03368_a0679aaf1401d9d10cbbdf57b4ddddcef}
4-\/byte unsigned vector 

Definition at line 778 of file Vector11\+T.\+hh.

\hypertarget{a03368_af7d7e0de6ecb4b791776444f2c327c73}{\index{Open\+Mesh@{Open\+Mesh}!Vec4ui@{Vec4ui}}
\index{Vec4ui@{Vec4ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 4 $>$ {\bf Open\+Mesh\+::\+Vec4ui}}}\label{a03368_af7d7e0de6ecb4b791776444f2c327c73}
4-\/int unsigned vector 

Definition at line 786 of file Vector11\+T.\+hh.

\hypertarget{a03368_a5923709edb2577d6d58e44fa44b6b2d7}{\index{Open\+Mesh@{Open\+Mesh}!Vec4us@{Vec4us}}
\index{Vec4us@{Vec4us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec4us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 4 $>$ {\bf Open\+Mesh\+::\+Vec4us}}}\label{a03368_a5923709edb2577d6d58e44fa44b6b2d7}
4-\/short unsigned vector 

Definition at line 782 of file Vector11\+T.\+hh.

\hypertarget{a03368_a421f9e51259cdf65cedfa7465fe8e8f7}{\index{Open\+Mesh@{Open\+Mesh}!Vec5c@{Vec5c}}
\index{Vec5c@{Vec5c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 5 $>$ {\bf Open\+Mesh\+::\+Vec5c}}}\label{a03368_a421f9e51259cdf65cedfa7465fe8e8f7}
5-\/byte signed vector 

Definition at line 793 of file Vector11\+T.\+hh.

\hypertarget{a03368_a1b3f41ae1ee97c99fea32e3cb697d4e0}{\index{Open\+Mesh@{Open\+Mesh}!Vec5d@{Vec5d}}
\index{Vec5d@{Vec5d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 5 $>$ {\bf Open\+Mesh\+::\+Vec5d}}}\label{a03368_a1b3f41ae1ee97c99fea32e3cb697d4e0}
5-\/double vector 

Definition at line 807 of file Vector11\+T.\+hh.

\hypertarget{a03368_a155d483431618c28abfb66809ea71fac}{\index{Open\+Mesh@{Open\+Mesh}!Vec5f@{Vec5f}}
\index{Vec5f@{Vec5f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 5 $>$ {\bf Open\+Mesh\+::\+Vec5f}}}\label{a03368_a155d483431618c28abfb66809ea71fac}
5-\/float vector 

Definition at line 805 of file Vector11\+T.\+hh.

\hypertarget{a03368_a705eba0d76f1c778e358e7ec17536cc3}{\index{Open\+Mesh@{Open\+Mesh}!Vec5i@{Vec5i}}
\index{Vec5i@{Vec5i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 5 $>$ {\bf Open\+Mesh\+::\+Vec5i}}}\label{a03368_a705eba0d76f1c778e358e7ec17536cc3}
5-\/int signed vector 

Definition at line 801 of file Vector11\+T.\+hh.

\hypertarget{a03368_ad0cacc6a9152cf473b5fc0b2bdd66633}{\index{Open\+Mesh@{Open\+Mesh}!Vec5s@{Vec5s}}
\index{Vec5s@{Vec5s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 5 $>$ {\bf Open\+Mesh\+::\+Vec5s}}}\label{a03368_ad0cacc6a9152cf473b5fc0b2bdd66633}
5-\/short signed vector 

Definition at line 797 of file Vector11\+T.\+hh.

\hypertarget{a03368_ac4788f3c9b4dd154f1430553e79e347e}{\index{Open\+Mesh@{Open\+Mesh}!Vec5uc@{Vec5uc}}
\index{Vec5uc@{Vec5uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 5 $>$ {\bf Open\+Mesh\+::\+Vec5uc}}}\label{a03368_ac4788f3c9b4dd154f1430553e79e347e}
5-\/byte unsigned vector 

Definition at line 795 of file Vector11\+T.\+hh.

\hypertarget{a03368_a5de2733a5abb142e23fb2e8a3c221b28}{\index{Open\+Mesh@{Open\+Mesh}!Vec5ui@{Vec5ui}}
\index{Vec5ui@{Vec5ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 5 $>$ {\bf Open\+Mesh\+::\+Vec5ui}}}\label{a03368_a5de2733a5abb142e23fb2e8a3c221b28}
5-\/int unsigned vector 

Definition at line 803 of file Vector11\+T.\+hh.

\hypertarget{a03368_a114b8dec1efe9cc6c5dcc398ec2db10a}{\index{Open\+Mesh@{Open\+Mesh}!Vec5us@{Vec5us}}
\index{Vec5us@{Vec5us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec5us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 5 $>$ {\bf Open\+Mesh\+::\+Vec5us}}}\label{a03368_a114b8dec1efe9cc6c5dcc398ec2db10a}
5-\/short unsigned vector 

Definition at line 799 of file Vector11\+T.\+hh.

\hypertarget{a03368_a92082b41980d9513fa021da5888e3177}{\index{Open\+Mesh@{Open\+Mesh}!Vec6c@{Vec6c}}
\index{Vec6c@{Vec6c}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6c}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed char, 6 $>$ {\bf Open\+Mesh\+::\+Vec6c}}}\label{a03368_a92082b41980d9513fa021da5888e3177}
6-\/byte signed vector 

Definition at line 810 of file Vector11\+T.\+hh.

\hypertarget{a03368_a4990edafce1984fa512d34b0ee38f428}{\index{Open\+Mesh@{Open\+Mesh}!Vec6d@{Vec6d}}
\index{Vec6d@{Vec6d}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6d}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ double, 6 $>$ {\bf Open\+Mesh\+::\+Vec6d}}}\label{a03368_a4990edafce1984fa512d34b0ee38f428}
6-\/double vector 

Definition at line 824 of file Vector11\+T.\+hh.

\hypertarget{a03368_af789d12a4a36583175d247875c5cadcf}{\index{Open\+Mesh@{Open\+Mesh}!Vec6f@{Vec6f}}
\index{Vec6f@{Vec6f}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6f}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ float, 6 $>$ {\bf Open\+Mesh\+::\+Vec6f}}}\label{a03368_af789d12a4a36583175d247875c5cadcf}
6-\/float vector 

Definition at line 822 of file Vector11\+T.\+hh.

\hypertarget{a03368_a25eda5dd23675c7f32d309f64e74b44e}{\index{Open\+Mesh@{Open\+Mesh}!Vec6i@{Vec6i}}
\index{Vec6i@{Vec6i}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6i}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed int, 6 $>$ {\bf Open\+Mesh\+::\+Vec6i}}}\label{a03368_a25eda5dd23675c7f32d309f64e74b44e}
6-\/int signed vector 

Definition at line 818 of file Vector11\+T.\+hh.

\hypertarget{a03368_a594226249077d4a603eb8a30d9ce2036}{\index{Open\+Mesh@{Open\+Mesh}!Vec6s@{Vec6s}}
\index{Vec6s@{Vec6s}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6s}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ signed short int, 6 $>$ {\bf Open\+Mesh\+::\+Vec6s}}}\label{a03368_a594226249077d4a603eb8a30d9ce2036}
6-\/short signed vector 

Definition at line 814 of file Vector11\+T.\+hh.

\hypertarget{a03368_a26063822a091276712e911f47c373748}{\index{Open\+Mesh@{Open\+Mesh}!Vec6uc@{Vec6uc}}
\index{Vec6uc@{Vec6uc}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6uc}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned char, 6 $>$ {\bf Open\+Mesh\+::\+Vec6uc}}}\label{a03368_a26063822a091276712e911f47c373748}
6-\/byte unsigned vector 

Definition at line 812 of file Vector11\+T.\+hh.

\hypertarget{a03368_af6172ca2fbe6c65877944661d7bcdc5e}{\index{Open\+Mesh@{Open\+Mesh}!Vec6ui@{Vec6ui}}
\index{Vec6ui@{Vec6ui}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6ui}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned int, 6 $>$ {\bf Open\+Mesh\+::\+Vec6ui}}}\label{a03368_af6172ca2fbe6c65877944661d7bcdc5e}
6-\/int unsigned vector 

Definition at line 820 of file Vector11\+T.\+hh.

\hypertarget{a03368_af7af51c975035ccdb38b9d392799ca07}{\index{Open\+Mesh@{Open\+Mesh}!Vec6us@{Vec6us}}
\index{Vec6us@{Vec6us}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{Vec6us}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Vector\+T}$<$ unsigned short int, 6 $>$ {\bf Open\+Mesh\+::\+Vec6us}}}\label{a03368_af7af51c975035ccdb38b9d392799ca07}
6-\/short unsigned vector 

Definition at line 816 of file Vector11\+T.\+hh.



\subsection{Function Documentation}
\hypertarget{a03368_a39010bd91c5088f5c36a3ef2b1e6e697}{\index{Open\+Mesh@{Open\+Mesh}!angle@{angle}}
\index{angle@{angle}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{angle}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ T Open\+Mesh\+::angle (
\begin{DoxyParamCaption}
\item[{T}]{\+\_\+cos\+\_\+angle, }
\item[{T}]{\+\_\+sin\+\_\+angle}
\end{DoxyParamCaption}
)}}\label{a03368_a39010bd91c5088f5c36a3ef2b1e6e697}
returns the angle determined by its cos and the sign of its sin result is positive if the angle is in \mbox{[}0\+:pi\mbox{]} and negative if it is in \mbox{[}pi\+:2pi\mbox{]} 

Definition at line 145 of file Math\+Defs.\+hh.

\hypertarget{a03368_a82f641ef2370d5bc304e1e764eb0b44b}{\index{Open\+Mesh@{Open\+Mesh}!is\+\_\+zero@{is\+\_\+zero}}
\index{is\+\_\+zero@{is\+\_\+zero}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{is\+\_\+zero}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T , typename Real $>$ bool Open\+Mesh\+::is\+\_\+zero (
\begin{DoxyParamCaption}
\item[{const T \&}]{\+\_\+a, }
\item[{Real}]{\+\_\+eps}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a03368_a82f641ef2370d5bc304e1e764eb0b44b}
comparison operators with user-\/selected precision control 

Definition at line 66 of file Math\+Defs.\+hh.

\hypertarget{a03368_ac0f75aab1c554cfcdf72a61c09d1ab36}{\index{Open\+Mesh@{Open\+Mesh}!mesh\+\_\+cast@{mesh\+\_\+cast}}
\index{mesh\+\_\+cast@{mesh\+\_\+cast}!Open\+Mesh@{Open\+Mesh}}
\subsubsection[{mesh\+\_\+cast}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename L\+H\+S , typename K\+E\+R\+N\+E\+L $>$ L\+H\+S Open\+Mesh\+::mesh\+\_\+cast (
\begin{DoxyParamCaption}
\item[{Poly\+Mesh\+T$<$ K\+E\+R\+N\+E\+L $>$ \&}]{rhs}
\end{DoxyParamCaption}
)}}\label{a03368_ac0f75aab1c554cfcdf72a61c09d1ab36}


Cast a mesh with different but identical traits into each other. 

Example\+: 
\begin{DoxyCode}
\textcolor{keyword}{struct }TriTraits1 : \textcolor{keyword}{public} \hyperlink{a00492}{OpenMesh::DefaultTraits} \{
  \textcolor{keyword}{typedef} \hyperlink{a03368_aca56e7eac7bf182bfff4ea1841d2cea2}{Vec3d} Point;
\};
\textcolor{keyword}{struct }TriTraits2 : \textcolor{keyword}{public} \hyperlink{a00492}{OpenMesh::DefaultTraits} \{
  \textcolor{keyword}{typedef} \hyperlink{a03368_aca56e7eac7bf182bfff4ea1841d2cea2}{Vec3d} Point;
\};
\textcolor{keyword}{struct }TriTraits3 : \textcolor{keyword}{public} \hyperlink{a00492}{OpenMesh::DefaultTraits} \{
  \textcolor{keyword}{typedef} \hyperlink{a01411}{Vec3f} Point;
\};

TriMesh\_ArrayKernelT<TriTraits1> a;
TriMesh\_ArrayKernelT<TriTraits2> &b = \hyperlink{a03368_ac0f75aab1c554cfcdf72a61c09d1ab36}{mesh\_cast}<TriMesh\_ArrayKernelT<TriTraits2>&>(a); \textcolor{comment}{// OK}
TriMesh\_ArrayKernelT<TriTraits3> &c = \hyperlink{a03368_ac0f75aab1c554cfcdf72a61c09d1ab36}{mesh\_cast}<TriMesh\_ArrayKernelT<TriTraits3>&>(a); \textcolor{comment}{// ERROR}
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\hyperlink{a00806}{Mesh\+Cast}
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em rhs} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\end{DoxyReturn}


Definition at line 592 of file Poly\+Mesh\+T.\+hh.

