\hypertarget{namespaceACG}{}\section{A\+CG Namespace Reference}
\label{namespaceACG}\index{A\+CG@{A\+CG}}


Namespace providing different geometric functions concerning angles.  


\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{namespaceACG_1_1Geometry}{Geometry}
\item 
 \hyperlink{namespaceACG_1_1QtWidgets}{Qt\+Widgets}
\item 
 \hyperlink{namespaceACG_1_1SceneGraph}{Scene\+Graph}
\end{DoxyCompactItemize}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classACG_1_1AtomicCounter}{Atomic\+Counter}
\item 
class \hyperlink{classACG_1_1BaseSeparableFilterKernel}{Base\+Separable\+Filter\+Kernel}
\item 
class \hyperlink{classACG_1_1BezierCurveT}{Bezier\+CurveT}
\item 
class \hyperlink{classACG_1_1BilateralBlurFilter}{Bilateral\+Blur\+Filter}
\item 
class \hyperlink{classACG_1_1BSplineCurveT}{B\+Spline\+CurveT}
\item 
class \hyperlink{classACG_1_1BSplineSurfaceT}{B\+Spline\+SurfaceT}
\item 
class \hyperlink{classACG_1_1ColorCoder}{Color\+Coder}
\begin{DoxyCompactList}\small\item\em Class for generating nice colors for doubles. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1ColorGenerator}{Color\+Generator}
\item 
class \hyperlink{classACG_1_1ColorStack}{Color\+Stack}
\item 
class \hyperlink{classACG_1_1ColorTranslator}{Color\+Translator}
\item 
class \hyperlink{classACG_1_1DisplayList}{Display\+List}
\item 
class \hyperlink{classACG_1_1DrawMeshBase}{Draw\+Mesh\+Base}
\item 
class \hyperlink{classACG_1_1DrawMeshFaceInput}{Draw\+Mesh\+Face\+Input}
\item 
class \hyperlink{classACG_1_1DrawMeshT}{Draw\+MeshT}
\begin{DoxyCompactList}\small\item\em Mesh Drawing Class. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1DualQuaternionT}{Dual\+QuaternionT}
\begin{DoxyCompactList}\small\item\em Dual\+Quaternion class for representing rigid motions in 3d. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1FBO}{F\+BO}
\item 
class \hyperlink{classACG_1_1GaussianBlurFilter}{Gaussian\+Blur\+Filter}
\item 
class \hyperlink{classACG_1_1GLBox}{G\+L\+Box}
\item 
class \hyperlink{classACG_1_1GLCone}{G\+L\+Cone}
\item 
class \hyperlink{classACG_1_1GLCylinder}{G\+L\+Cylinder}
\item 
class \hyperlink{classACG_1_1GLDisk}{G\+L\+Disk}
\item 
class \hyperlink{classACG_1_1GLDodecahedron}{G\+L\+Dodecahedron}
\item 
class \hyperlink{classACG_1_1GLFormatInfo}{G\+L\+Format\+Info}
\item 
class \hyperlink{classACG_1_1GLIcosahedron}{G\+L\+Icosahedron}
\item 
class \hyperlink{classACG_1_1GLLineBox}{G\+L\+Line\+Box}
\item 
class \hyperlink{classACG_1_1GLMatrixT}{G\+L\+MatrixT}
\begin{DoxyCompactList}\small\item\em 4x4 matrix implementing Open\+GL commands. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1GLOctahedron}{G\+L\+Octahedron}
\item 
class \hyperlink{classACG_1_1GLPartialDisk}{G\+L\+Partial\+Disk}
\item 
class \hyperlink{classACG_1_1GLPrimitive}{G\+L\+Primitive}
\item 
class \hyperlink{classACG_1_1GLSphere}{G\+L\+Sphere}
\item 
class \hyperlink{classACG_1_1GLState}{G\+L\+State}
\item 
struct \hyperlink{structACG_1_1GLStateContext}{G\+L\+State\+Context}
\item 
class \hyperlink{classACG_1_1GLTetrahedron}{G\+L\+Tetrahedron}
\item 
class \hyperlink{classACG_1_1GLTorus}{G\+L\+Torus}
\item 
class \hyperlink{classACG_1_1GLTrackball}{G\+L\+Trackball}
\item 
class \hyperlink{classACG_1_1GPUCacheEfficiencyTester}{G\+P\+U\+Cache\+Efficiency\+Tester}
\item 
class \hyperlink{classACG_1_1GPUCacheOptimizer}{G\+P\+U\+Cache\+Optimizer}
\item 
class \hyperlink{classACG_1_1GPUCacheOptimizerTipsify}{G\+P\+U\+Cache\+Optimizer\+Tipsify}
\item 
class \hyperlink{classACG_1_1HaltonColors}{Halton\+Colors}
\begin{DoxyCompactList}\small\item\em Implementation of halton colors Provides deterministic pseudo-\/random low-\/discrepancy colors with a uniform distribution over a visually pleasing subset of H\+SL space, independent of the number of colors required. Simply instantiate and use \hyperlink{classACG_1_1HaltonColors_acacddee97133611d8d1ad2a5b291b08a}{get\+\_\+next\+\_\+color()}. \end{DoxyCompactList}\item 
struct \hyperlink{structACG_1_1HeapInterfaceT}{Heap\+InterfaceT}
\item 
class \hyperlink{classACG_1_1HeapT}{HeapT}
\item 
class \hyperlink{classACG_1_1Histogram}{Histogram}
\item 
class \hyperlink{classACG_1_1HistogramT}{HistogramT}
\item 
class \hyperlink{classACG_1_1HuePartitioningColors}{Hue\+Partitioning\+Colors}
\item 
class \hyperlink{classACG_1_1IColorCoder}{I\+Color\+Coder}
\item 
class \hyperlink{classACG_1_1IRenderer}{I\+Renderer}
\item 
class \hyperlink{classACG_1_1KnotvectorT}{KnotvectorT}
\item 
class \hyperlink{classACG_1_1LinearTwoColorCoder}{Linear\+Two\+Color\+Coder}
\item 
class \hyperlink{classACG_1_1Matrix3x3T}{Matrix3x3T}
\item 
class \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}
\item 
class \hyperlink{classACG_1_1MeshCompiler}{Mesh\+Compiler}
\item 
struct \hyperlink{structACG_1_1MeshCompiler__EdgeTriMapKey}{Mesh\+Compiler\+\_\+\+Edge\+Tri\+Map\+Key}
\item 
class \hyperlink{classACG_1_1MeshCompilerDefaultFaceInput}{Mesh\+Compiler\+Default\+Face\+Input}
\item 
class \hyperlink{classACG_1_1MeshCompilerFaceInput}{Mesh\+Compiler\+Face\+Input}
\item 
class \hyperlink{classACG_1_1MeshCompilerVertexCompare}{Mesh\+Compiler\+Vertex\+Compare}
\item 
class \hyperlink{classACG_1_1Noncopyable}{Noncopyable}
\item 
class \hyperlink{classACG_1_1NumLimitsT}{Num\+LimitsT}
\item 
class \hyperlink{classACG_1_1PoissonBlurFilter}{Poisson\+Blur\+Filter}
\item 
class \hyperlink{classACG_1_1PolyLineT}{Poly\+LineT}
\item 
class \hyperlink{classACG_1_1Profile}{Profile}
\item 
class \hyperlink{classACG_1_1ProgramBase}{Program\+Base}
\item 
class \hyperlink{classACG_1_1Progress}{Progress}
\item 
class \hyperlink{classACG_1_1QtColorTranslator}{Qt\+Color\+Translator}
\item 
class \hyperlink{classACG_1_1QtLasso}{Qt\+Lasso}
\item 
class \hyperlink{classACG_1_1QtPrincipalAxisDialog}{Qt\+Principal\+Axis\+Dialog}
\item 
class \hyperlink{classACG_1_1QuaternionT}{QuaternionT}
\item 
class \hyperlink{classACG_1_1QueryCounter}{Query\+Counter}
\item 
class \hyperlink{classACG_1_1QueryObject}{Query\+Object}
\item 
class \hyperlink{classACG_1_1RadialBlurFilter}{Radial\+Blur\+Filter}
\item 
struct \hyperlink{structACG_1_1RenderObject}{Render\+Object}
\begin{DoxyCompactList}\small\item\em Interface class between scenegraph and renderer. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1RenderObjectModifier}{Render\+Object\+Modifier}
\begin{DoxyCompactList}\small\item\em Interface for modifying render objects. \end{DoxyCompactList}\item 
struct \hyperlink{structACG_1_1RingTriangle}{Ring\+Triangle}
\item 
class \hyperlink{classACG_1_1ScreenQuad}{Screen\+Quad}
\item 
class \hyperlink{classACG_1_1ShaderCache}{Shader\+Cache}
\begin{DoxyCompactList}\small\item\em Cache for shaders. \end{DoxyCompactList}\item 
class \hyperlink{classACG_1_1ShaderGenDesc}{Shader\+Gen\+Desc}
\item 
class \hyperlink{classACG_1_1ShaderGenerator}{Shader\+Generator}
\item 
class \hyperlink{classACG_1_1ShaderModifier}{Shader\+Modifier}
\item 
class \hyperlink{classACG_1_1ShaderModifierFile}{Shader\+Modifier\+File}
\item 
class \hyperlink{classACG_1_1ShaderProgGenerator}{Shader\+Prog\+Generator}
\item 
class \hyperlink{classACG_1_1ShaderStorageBufferObject}{Shader\+Storage\+Buffer\+Object}
\item 
class \hyperlink{classACG_1_1StopWatch}{Stop\+Watch}
\item 
class \hyperlink{classACG_1_1Texture}{Texture}
\item 
class \hyperlink{classACG_1_1Texture1D}{Texture1D}
\item 
class \hyperlink{classACG_1_1Texture2D}{Texture2D}
\item 
class \hyperlink{classACG_1_1Texture3D}{Texture3D}
\item 
class \hyperlink{classACG_1_1TextureBuffer}{Texture\+Buffer}
\item 
class \hyperlink{classACG_1_1TimedTracing}{Timed\+Tracing}
\item 
class \hyperlink{classACG_1_1Tracing}{Tracing}
\item 
class \hyperlink{classACG_1_1Triangulator}{Triangulator}
\item 
class \hyperlink{classACG_1_1UniformBufferObject}{Uniform\+Buffer\+Object}
\item 
class \hyperlink{classACG_1_1Util}{Util}
\item 
class \hyperlink{classACG_1_1VertexArrayObject}{Vertex\+Array\+Object}
\item 
class \hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration}
\begin{DoxyCompactList}\small\item\em Class to define the vertex input layout. \end{DoxyCompactList}\item 
union \hyperlink{unionACG_1_1VertexDeclaration__ptr2uint}{Vertex\+Declaration\+\_\+ptr2uint}
\item 
struct \hyperlink{structACG_1_1VertexElement}{Vertex\+Element}
\begin{DoxyCompactList}\small\item\em Description of one vertex element. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespaceACG_a00ad84a850a4ae428fb7f9a7abbfc256}\label{namespaceACG_a00ad84a850a4ae428fb7f9a7abbfc256}} 
typedef \hyperlink{classACG_1_1DualQuaternionT}{Dual\+QuaternionT}$<$ float $>$ {\bfseries Dual\+Quaternionf}
\item 
\mbox{\Hypertarget{namespaceACG_ac9e9fbd8597589e37322748108c4454e}\label{namespaceACG_ac9e9fbd8597589e37322748108c4454e}} 
typedef \hyperlink{classACG_1_1DualQuaternionT}{Dual\+QuaternionT}$<$ double $>$ {\bfseries Dual\+Quaterniond}
\item 
\mbox{\Hypertarget{namespaceACG_a1e5dae9881df8fa0d42b985a8e7fad28}\label{namespaceACG_a1e5dae9881df8fa0d42b985a8e7fad28}} 
typedef \hyperlink{classACG_1_1GLMatrixT}{G\+L\+MatrixT}$<$ float $>$ \hyperlink{namespaceACG_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf}
\begin{DoxyCompactList}\small\item\em typedef \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a574eaee6f4eff166845ff5c654b0b852}\label{namespaceACG_a574eaee6f4eff166845ff5c654b0b852}} 
typedef \hyperlink{classACG_1_1GLMatrixT}{G\+L\+MatrixT}$<$ double $>$ \hyperlink{namespaceACG_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd}
\begin{DoxyCompactList}\small\item\em typedef \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a1af6c7d10a8cc94ac303bc51857bc261}\label{namespaceACG_a1af6c7d10a8cc94ac303bc51857bc261}} 
typedef \hyperlink{classACG_1_1Matrix3x3T}{Matrix3x3T}$<$ float $>$ {\bfseries Matrix3x3f}
\item 
\mbox{\Hypertarget{namespaceACG_af0ff1c005c765d4c780ca3d38a0fd4b7}\label{namespaceACG_af0ff1c005c765d4c780ca3d38a0fd4b7}} 
typedef \hyperlink{classACG_1_1Matrix3x3T}{Matrix3x3T}$<$ double $>$ {\bfseries Matrix3x3d}
\item 
\mbox{\Hypertarget{namespaceACG_adfd6dae1d611ecda8f6ea5ad9af8a605}\label{namespaceACG_adfd6dae1d611ecda8f6ea5ad9af8a605}} 
typedef \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}$<$ float $>$ \hyperlink{namespaceACG_adfd6dae1d611ecda8f6ea5ad9af8a605}{Matrix4x4f}
\begin{DoxyCompactList}\small\item\em typedef \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}\label{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}} 
typedef \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}$<$ double $>$ \hyperlink{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}{Matrix4x4d}
\begin{DoxyCompactList}\small\item\em typedef \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_aa8e8a14feb66d68060e60a37720cf450}\label{namespaceACG_aa8e8a14feb66d68060e60a37720cf450}} 
typedef \hyperlink{classACG_1_1QuaternionT}{QuaternionT}$<$ float $>$ {\bfseries Quaternionf}
\item 
\mbox{\Hypertarget{namespaceACG_a603e5f87775da891fb57bf059162de7a}\label{namespaceACG_a603e5f87775da891fb57bf059162de7a}} 
typedef \hyperlink{classACG_1_1QuaternionT}{QuaternionT}$<$ double $>$ {\bfseries Quaterniond}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed char, 1 $>$ \hyperlink{namespaceACG_a725d8f83b113ccc926911cba6f6e649f}{Vec1c}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned char, 1 $>$ \hyperlink{namespaceACG_a353d5c2637cc37b5f0f97d45b5c0ee07}{Vec1uc}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed short int, 1 $>$ \hyperlink{namespaceACG_adff0d06544349fc9fba6fed1c413f721}{Vec1s}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned short int, 1 $>$ \hyperlink{namespaceACG_a626f5eb0b6a20169e50a38c0259e54a8}{Vec1us}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed int, 1 $>$ \hyperlink{namespaceACG_aceb84852d824662eaf1db56be313ed0d}{Vec1i}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned int, 1 $>$ \hyperlink{namespaceACG_a71faded00c3142204ff2de96cb89d251}{Vec1ui}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ float, 1 $>$ \hyperlink{namespaceACG_a862b25bcbee8cd1298633fc922ed2a9d}{Vec1f}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ double, 1 $>$ \hyperlink{namespaceACG_a6fef367799d5538adc3375ffdb8a542a}{Vec1d}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed char, 2 $>$ \hyperlink{namespaceACG_a2c43678913410cfe5a2fc6e9f9289896}{Vec2c}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned char, 2 $>$ \hyperlink{namespaceACG_ab14d8036392954cac3392ac9f7f87ed9}{Vec2uc}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed short int, 2 $>$ \hyperlink{namespaceACG_a9c7365a5dfa49478905cd82810b3f437}{Vec2s}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned short int, 2 $>$ \hyperlink{namespaceACG_abbb3a17a501d4c2bfbf409b564ca0c38}{Vec2us}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed int, 2 $>$ \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned int, 2 $>$ \hyperlink{namespaceACG_ae4755d4e07cff81eb7a26cd0540ce314}{Vec2ui}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ float, 2 $>$ \hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{Vec2f}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ double, 2 $>$ \hyperlink{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}{Vec2d}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed char, 3 $>$ \hyperlink{namespaceACG_a45e7b55467250f36295d54e09895bbda}{Vec3c}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned char, 3 $>$ \hyperlink{namespaceACG_a9334e4037c813f1a3d41719ee499dedc}{Vec3uc}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed short int, 3 $>$ \hyperlink{namespaceACG_ad1592a064c1c7644437d55458e9ae5a7}{Vec3s}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned short int, 3 $>$ \hyperlink{namespaceACG_a5b0d2f1bbb1c83da9b3a732f857f29d6}{Vec3us}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed int, 3 $>$ \hyperlink{namespaceACG_aa30a8644d70fd14b6430f3819953a431}{Vec3i}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned int, 3 $>$ \hyperlink{namespaceACG_a916145c1569f644e2559d780955f3050}{Vec3ui}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ float, 3 $>$ \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ double, 3 $>$ \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ bool, 3 $>$ \hyperlink{namespaceACG_aaccef8248aae03d3212d67c72d1e5bb2}{Vec3b}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed char, 4 $>$ \hyperlink{namespaceACG_a1fea333b24ffe7d203eee0f3db68e520}{Vec4c}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned char, 4 $>$ \hyperlink{namespaceACG_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed short int, 4 $>$ \hyperlink{namespaceACG_a0212c1360f952d61874d5c20aa25f215}{Vec4s}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned short int, 4 $>$ \hyperlink{namespaceACG_ac2512775d5c458680b73e54430f688c8}{Vec4us}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed int, 4 $>$ \hyperlink{namespaceACG_a8cc325594ae505979f752598d1d81c40}{Vec4i}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned int, 4 $>$ \hyperlink{namespaceACG_af5c09af5e4de06e8474b9995b3d39d30}{Vec4ui}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ float, 4 $>$ \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ double, 4 $>$ \hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed char, 6 $>$ \hyperlink{namespaceACG_acd1483bebd241438fbcce035b9cf3c87}{Vec6c}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned char, 6 $>$ \hyperlink{namespaceACG_a85bf06c58129c761a11649ffd7bc624e}{Vec6uc}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed short int, 6 $>$ \hyperlink{namespaceACG_a9e7d71eb0c0d5725cdfae765cc9cdfc1}{Vec6s}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned short int, 6 $>$ \hyperlink{namespaceACG_a880a548f64a7afc3a2cbe5c32c6c7966}{Vec6us}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ signed int, 6 $>$ \hyperlink{namespaceACG_a1c11490dc4454eeb24f5615efad62422}{Vec6i}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ unsigned int, 6 $>$ \hyperlink{namespaceACG_ad7bb07e825647a6f9c018cdd9607576f}{Vec6ui}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ float, 6 $>$ \hyperlink{namespaceACG_ab861a52a2ea3145173a7da0264c200f9}{Vec6f}
\item 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ double, 6 $>$ \hyperlink{namespaceACG_ac140c644ae4d13ba4158811ec9f9f9cc}{Vec6d}
\item 
\mbox{\Hypertarget{namespaceACG_a652ac049068252c6b9d08a069a5ca030}\label{namespaceACG_a652ac049068252c6b9d08a069a5ca030}} 
{\footnotesize template$<$class Mesh , class E\+Handle , class E\+P\+Handle $>$ }\\using {\bfseries Smart\+TaggerT} = \hyperlink{classOpenMesh_1_1SmartTaggerT}{Open\+Mesh\+::\+Smart\+TaggerT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh}, E\+Handle, E\+P\+Handle $>$
\item 
\mbox{\Hypertarget{namespaceACG_ac26d6cb1eb79918d7102e1997df03e2e}\label{namespaceACG_ac26d6cb1eb79918d7102e1997df03e2e}} 
{\footnotesize template$<$class Mesh $>$ }\\using {\bfseries Smart\+Tagger\+VT} = \hyperlink{classOpenMesh_1_1SmartTaggerVT}{Open\+Mesh\+::\+Smart\+Tagger\+VT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$
\item 
\mbox{\Hypertarget{namespaceACG_aed32bbb3ecd9623a9737196a9e01850d}\label{namespaceACG_aed32bbb3ecd9623a9737196a9e01850d}} 
{\footnotesize template$<$class Mesh $>$ }\\using {\bfseries Smart\+Tagger\+ET} = \hyperlink{classOpenMesh_1_1SmartTaggerET}{Open\+Mesh\+::\+Smart\+Tagger\+ET}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$
\item 
\mbox{\Hypertarget{namespaceACG_a9b972a614674f23e5c5853f15886d1ef}\label{namespaceACG_a9b972a614674f23e5c5853f15886d1ef}} 
{\footnotesize template$<$class Mesh $>$ }\\using {\bfseries Smart\+Tagger\+FT} = \hyperlink{classOpenMesh_1_1SmartTaggerFT}{Open\+Mesh\+::\+Smart\+Tagger\+FT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$
\item 
\mbox{\Hypertarget{namespaceACG_a3863bd2d5166b7b3e5cf4a4684617c86}\label{namespaceACG_a3863bd2d5166b7b3e5cf4a4684617c86}} 
{\footnotesize template$<$class Mesh $>$ }\\using {\bfseries Smart\+Tagger\+HT} = \hyperlink{classOpenMesh_1_1SmartTaggerHT}{Open\+Mesh\+::\+Smart\+Tagger\+HT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$
\item 
\mbox{\Hypertarget{namespaceACG_adb5d08f228746371493726fd3056c13b}\label{namespaceACG_adb5d08f228746371493726fd3056c13b}} 
typedef \hyperlink{classACG_1_1KnotvectorT}{A\+C\+G\+::\+KnotvectorT}$<$ double $>$ {\bfseries Knotvector}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespaceACG_a3ba4be91a76c814b91af6efd1baf0669}\label{namespaceACG_a3ba4be91a76c814b91af6efd1baf0669}} 
enum {\bfseries Shader\+Gen\+Light\+Type} \{ {\bfseries S\+G\+\_\+\+L\+I\+G\+H\+T\+\_\+\+D\+I\+R\+E\+C\+T\+I\+O\+N\+AL} = 0, 
{\bfseries S\+G\+\_\+\+L\+I\+G\+H\+T\+\_\+\+P\+O\+I\+NT}, 
{\bfseries S\+G\+\_\+\+L\+I\+G\+H\+T\+\_\+\+S\+P\+OT}, 
{\bfseries S\+G\+\_\+\+L\+I\+G\+H\+T\+\_\+\+F\+O\+R\+C\+E\+\_\+\+D\+W\+O\+RD} = 0x\+F\+F\+F\+F\+F\+F\+FF
 \}
\item 
\mbox{\Hypertarget{namespaceACG_aef4361b16303c7ba8a3206e97cedad0a}\label{namespaceACG_aef4361b16303c7ba8a3206e97cedad0a}} 
enum {\bfseries Shader\+Gen\+Shade\+Mode} \{ \newline
{\bfseries S\+G\+\_\+\+S\+H\+A\+D\+E\+\_\+\+U\+N\+L\+IT} = 0, 
{\bfseries S\+G\+\_\+\+S\+H\+A\+D\+E\+\_\+\+F\+L\+AT}, 
{\bfseries S\+G\+\_\+\+S\+H\+A\+D\+E\+\_\+\+G\+O\+U\+R\+A\+UD}, 
{\bfseries S\+G\+\_\+\+S\+H\+A\+D\+E\+\_\+\+P\+H\+O\+NG}, 
\newline
{\bfseries S\+G\+\_\+\+S\+H\+A\+D\+E\+\_\+\+F\+O\+R\+C\+E\+\_\+\+D\+W\+O\+RD} = 0x\+F\+F\+F\+F\+F\+F\+FF
 \}
\item 
enum \hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122a}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE} \{ \newline
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa50a4029397cce53cd0ebb727e5165a5c}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON} = 0, 
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa0339cb865b55fd11e0bb1bd399f408be}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL}, 
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aab44a0a514fea53313de54ef79e549756}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD}, 
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa4b21ea5dc7270209b96bdcc7555f0ec0}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR}, 
\newline
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa7a0ba12f79a345703029ea6a6ca16c4d}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS}, 
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aaa4a5473356167654545aaf929f6619da}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES}, 
\hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aafa3293a2b16c5e0fdca7d9282ee8409b}{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT}, 
{\bfseries V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+F\+O\+R\+C\+E\+\_\+\+D\+W\+O\+RD} = 0x\+F\+F\+F\+F\+F\+F\+FF
 \}\begin{DoxyCompactList}\small\item\em -\/--- input name in vertex shader -\/-\/-\/-\/--- \end{DoxyCompactList}
\item 
enum \hyperlink{namespaceACG_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \{ {\bfseries M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+HT}, 
{\bfseries M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+L\+E\+FT}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
std\+::string \hyperlink{namespaceACG_ad48702b05d6c605490d39d0d48f4dd27}{get\+Extension\+String} ()
\begin{DoxyCompactList}\small\item\em get\+Extension\+String returns a string containing all supported Open\+GL extensions this function uses the new style to query the extensions \end{DoxyCompactList}\item 
bool \hyperlink{namespaceACG_a54d712a40729b969c2b4908bccfc78f8}{check\+Extension\+Supported} (const std\+::string \&\+\_\+extension)
\item 
bool \hyperlink{namespaceACG_a5ce0d1060a927a9f2e27ad5020f40be9}{open\+G\+L\+Version} (const int \+\_\+major, const int \+\_\+minor, bool \+\_\+verbose)
\item 
\mbox{\Hypertarget{namespaceACG_adfd1373576cf44648ec87cc23f11521a}\label{namespaceACG_adfd1373576cf44648ec87cc23f11521a}} 
void \hyperlink{namespaceACG_adfd1373576cf44648ec87cc23f11521a}{compatibility\+Profile} (bool \+\_\+enable\+Core\+Profile)
\begin{DoxyCompactList}\small\item\em Store opengl core profile setting. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ade1e9059d453b6d7546a8b7e57743123}\label{namespaceACG_ade1e9059d453b6d7546a8b7e57743123}} 
bool \hyperlink{namespaceACG_ade1e9059d453b6d7546a8b7e57743123}{compatibility\+Profile} ()
\begin{DoxyCompactList}\small\item\em get opengl core profile setting \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a886c657d1ce4e3cbf064131ccb97104e}\label{namespaceACG_a886c657d1ce4e3cbf064131ccb97104e}} 
void \hyperlink{namespaceACG_a886c657d1ce4e3cbf064131ccb97104e}{gl\+Vertex} (const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec2i. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a67be8fb33dcebb76f815533ca414b020}\label{namespaceACG_a67be8fb33dcebb76f815533ca414b020}} 
void \hyperlink{namespaceACG_a67be8fb33dcebb76f815533ca414b020}{gl\+Vertex} (const \hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{Vec2f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec2f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a34ee2f4ba9fb0f913218aaf7d516f08d}\label{namespaceACG_a34ee2f4ba9fb0f913218aaf7d516f08d}} 
void \hyperlink{namespaceACG_a34ee2f4ba9fb0f913218aaf7d516f08d}{gl\+Vertex} (const \hyperlink{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}{Vec2d} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec2d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ac795a229677116db01e685f443be572e}\label{namespaceACG_ac795a229677116db01e685f443be572e}} 
void \hyperlink{namespaceACG_ac795a229677116db01e685f443be572e}{gl\+Vertex} (const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec3f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a9fd73b39aae10f42ac15ba39f4affc7f}\label{namespaceACG_a9fd73b39aae10f42ac15ba39f4affc7f}} 
void \hyperlink{namespaceACG_a9fd73b39aae10f42ac15ba39f4affc7f}{gl\+Vertex} (const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec3d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ab0846973d5cee46e6f6910b529061db2}\label{namespaceACG_ab0846973d5cee46e6f6910b529061db2}} 
void \hyperlink{namespaceACG_ab0846973d5cee46e6f6910b529061db2}{gl\+Vertex} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec4f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a990188a098f72ac32eb967ae10db0f57}\label{namespaceACG_a990188a098f72ac32eb967ae10db0f57}} 
void \hyperlink{namespaceACG_a990188a098f72ac32eb967ae10db0f57}{gl\+Vertex} (const \hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex for Vec4d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_aae2eb7575c42cff2412d5b86f4c335cf}\label{namespaceACG_aae2eb7575c42cff2412d5b86f4c335cf}} 
void \hyperlink{namespaceACG_aae2eb7575c42cff2412d5b86f4c335cf}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{Vec2f} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec2f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a5a4548e04ceed029bc1dec2d2ebbeaec}\label{namespaceACG_a5a4548e04ceed029bc1dec2d2ebbeaec}} 
void \hyperlink{namespaceACG_a5a4548e04ceed029bc1dec2d2ebbeaec}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}{Vec2d} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec2d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a5d8aef0263da130d1377b77b2f3a2553}\label{namespaceACG_a5d8aef0263da130d1377b77b2f3a2553}} 
void \hyperlink{namespaceACG_a5d8aef0263da130d1377b77b2f3a2553}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec3f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a1f3e22369d114d4f9dfafb71dfc46c62}\label{namespaceACG_a1f3e22369d114d4f9dfafb71dfc46c62}} 
void \hyperlink{namespaceACG_a1f3e22369d114d4f9dfafb71dfc46c62}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec3d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ae5e659c3257aba07b5ba504c678ffeab}\label{namespaceACG_ae5e659c3257aba07b5ba504c678ffeab}} 
void \hyperlink{namespaceACG_ae5e659c3257aba07b5ba504c678ffeab}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec4f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a4db77e27bdf5fa473b60accfa34f0af0}\label{namespaceACG_a4db77e27bdf5fa473b60accfa34f0af0}} 
void \hyperlink{namespaceACG_a4db77e27bdf5fa473b60accfa34f0af0}{gl\+Tex\+Coord} (const \hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} \&\+\_\+t)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Tex\+Coord for Vec4d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a0e900d6ed41557e01ba8996ffcb9b344}\label{namespaceACG_a0e900d6ed41557e01ba8996ffcb9b344}} 
void \hyperlink{namespaceACG_a0e900d6ed41557e01ba8996ffcb9b344}{gl\+Normal} (const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+n)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Normal for Vec3f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a44842087a80a41bf36ad29f1b50d7fc1}\label{namespaceACG_a44842087a80a41bf36ad29f1b50d7fc1}} 
void \hyperlink{namespaceACG_a44842087a80a41bf36ad29f1b50d7fc1}{gl\+Normal} (const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+n)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Normal for Vec3d. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a0272d13a29243667bbca69e29909229c}\label{namespaceACG_a0272d13a29243667bbca69e29909229c}} 
void \hyperlink{namespaceACG_a0272d13a29243667bbca69e29909229c}{gl\+Color} (const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color for Vec3f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a14c5057809912248abf806c4d0545715}\label{namespaceACG_a14c5057809912248abf806c4d0545715}} 
void \hyperlink{namespaceACG_a14c5057809912248abf806c4d0545715}{gl\+Color} (const \hyperlink{namespaceACG_a9334e4037c813f1a3d41719ee499dedc}{Vec3uc} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color for Vec3uc. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ad967b83364e91dca182ee908ee45274c}\label{namespaceACG_ad967b83364e91dca182ee908ee45274c}} 
void \hyperlink{namespaceACG_ad967b83364e91dca182ee908ee45274c}{gl\+Color} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color for Vec4f. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_af03694ca3b4ddb7fc0a3dc059cd9509e}\label{namespaceACG_af03694ca3b4ddb7fc0a3dc059cd9509e}} 
void \hyperlink{namespaceACG_af03694ca3b4ddb7fc0a3dc059cd9509e}{gl\+Color} (const \hyperlink{namespaceACG_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color for Vec4uc. \end{DoxyCompactList}\item 
bool A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT \hyperlink{namespaceACG_a4aeb5d3e1f51556c80e030d25036eb31}{open\+G\+L\+Version\+Test} (const int \+\_\+major, const int \+\_\+minor)
\item 
std\+::string \hyperlink{namespaceACG_a0548eb1d900b14ba2fe68a7ab6d4b748}{gl\+Error\+To\+String} (G\+Lenum \+\_\+error)
\begin{DoxyCompactList}\small\item\em replaces the glu\+Error\+To\+String function at least for the standard Open\+GL Headers \end{DoxyCompactList}\item 
void \hyperlink{namespaceACG_ad83417cdf0490017ecf6fa7ba32e40c7}{gl\+Check\+Errors} ()
\item 
\mbox{\Hypertarget{namespaceACG_af9b94b99d97e70e36243da16a0d44379}\label{namespaceACG_af9b94b99d97e70e36243da16a0d44379}} 
{\footnotesize template$<$class T $>$ }\\void {\bfseries Texture2\+D\+\_\+build\+Mip\+Maps\+\_\+\+Data\+Interpreter} (\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} $\ast$\+\_\+dst, int \+\_\+num\+Channels, int \+\_\+src\+Offset, const void $\ast$\+\_\+src)
\item 
\mbox{\Hypertarget{namespaceACG_a9abd255757d72fb8cbe028cbf7b25cc7}\label{namespaceACG_a9abd255757d72fb8cbe028cbf7b25cc7}} 
bool {\bfseries Mesh\+Compiler\+\_\+force\+Unshared\+Face\+Vertex\+\_\+\+Inner\+Valence\+Sorter} (const std\+::pair$<$ int, int $>$ \&a, const std\+::pair$<$ int, int $>$ \&b)
\item 
\mbox{\Hypertarget{namespaceACG_a98b568d94404c60d593c67f84fd75b20}\label{namespaceACG_a98b568d94404c60d593c67f84fd75b20}} 
uint {\bfseries q\+Hash} (const \hyperlink{structACG_1_1MeshCompiler__EdgeTriMapKey}{Mesh\+Compiler\+\_\+\+Edge\+Tri\+Map\+Key} \&k)
\item 
\mbox{\Hypertarget{namespaceACG_aa2ebac7c065b77f360a8f8c93f7c1ec1}\label{namespaceACG_aa2ebac7c065b77f360a8f8c93f7c1ec1}} 
void {\bfseries stipple\+\_\+alpha} (float \+\_\+alpha)
\item 
{\footnotesize template$<$typename Scalar $>$ }\\\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \hyperlink{namespaceACG_a6ff79830b334b22d9ca927beadf5ac17}{bspline\+Span} (Scalar \+\_\+t, int \+\_\+degree, const std\+::vector$<$ Scalar $>$ \&\+\_\+knots)
\begin{DoxyCompactList}\small\item\em Find the span of a parameter value. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Scalar $>$ }\\void \hyperlink{namespaceACG_a414bf0f8fb104625263ef6e5e9470d50}{bspline\+Basis\+Functions} (std\+::vector$<$ Scalar $>$ \&\+\_\+N, const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+span, Scalar \+\_\+t, const std\+::vector$<$ Scalar $>$ \&\+\_\+knots)
\begin{DoxyCompactList}\small\item\em Evaluate basis functions in a span. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Scalar $>$ }\\void \hyperlink{namespaceACG_a275c546088adbd0a8afd7cdf0a533148}{bspline\+Basis\+Derivatives} (std\+::vector$<$ Scalar $>$ \&\+\_\+ders, const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+span, Scalar \+\_\+t, int \+\_\+der, const std\+::vector$<$ Scalar $>$ \&\+\_\+knots, std\+::vector$<$ Scalar $>$ $\ast$\+\_\+function\+Vals)
\begin{DoxyCompactList}\small\item\em Compute derivatives of basis functions in a span. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Scalar $>$ }\\Scalar \hyperlink{namespaceACG_a2b5d777b57b0c725743ea7edc5c9ca49}{bspline\+Basis\+Function} (int \+\_\+i, int \+\_\+degree, Scalar \+\_\+t, const std\+::vector$<$ Scalar $>$ \&\+\_\+knots)
\begin{DoxyCompactList}\small\item\em Evaluate a single basis function. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Scalar $>$ }\\Scalar \hyperlink{namespaceACG_a89b1ba8135662af6ebe94dd61186d2c4}{bspline\+Basis\+Derivative} (int \+\_\+i, int \+\_\+degree, Scalar \+\_\+t, int \+\_\+der, const std\+::vector$<$ Scalar $>$ \&\+\_\+knots)
\begin{DoxyCompactList}\small\item\em Compute derivative of a single basis function. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_ac2b18bcbdde40cfd5678d9c34b1f8981}\label{namespaceACG_ac2b18bcbdde40cfd5678d9c34b1f8981}} 
{\footnotesize template$<$typename Scalar $>$ }\\bool {\bfseries check\+Epsilon} (Scalar x)
\item 
\mbox{\Hypertarget{namespaceACG_a482e58cb87c76dfe7f65f8186d27b97d}\label{namespaceACG_a482e58cb87c76dfe7f65f8186d27b97d}} 
{\footnotesize template$<$$>$ }\\bool {\bfseries check\+Epsilon} (float x)
\item 
\mbox{\Hypertarget{namespaceACG_a27e429d10204417f1d24958dc5bf499f}\label{namespaceACG_a27e429d10204417f1d24958dc5bf499f}} 
{\footnotesize template$<$typename Scalar $>$ }\\std\+::ostream \& \hyperlink{namespaceACG_a27e429d10204417f1d24958dc5bf499f}{operator$<$$<$} (std\+::ostream \&os, const \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}$<$ Scalar $>$ \&m)
\begin{DoxyCompactList}\small\item\em output matrix to ostream os \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_acc462f22fa8ee550e2217d7f92bacfdd}\label{namespaceACG_acc462f22fa8ee550e2217d7f92bacfdd}} 
{\footnotesize template$<$typename Scalar $>$ }\\std\+::istream \& \hyperlink{namespaceACG_acc462f22fa8ee550e2217d7f92bacfdd}{operator$>$$>$} (std\+::istream \&is, \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}$<$ Scalar $>$ \&m)
\begin{DoxyCompactList}\small\item\em read the space-\/separated components of a vector from a stream $\ast$/ \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespaceACG_a7e485246e084d0e3e17acf2923b6da7a}\label{namespaceACG_a7e485246e084d0e3e17acf2923b6da7a}} 
Q\+String {\bfseries get\+Open\+File\+Name} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, const Q\+String \&\+\_\+filter, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_a16372155347fc754d6f6d9b7cf87f985}\label{namespaceACG_a16372155347fc754d6f6d9b7cf87f985}} 
Q\+String {\bfseries get\+Open\+Mesh\+Name} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_aaf1db60f7dac77efce088f2a01c983f0}\label{namespaceACG_aaf1db60f7dac77efce088f2a01c983f0}} 
Q\+String\+List {\bfseries get\+Open\+File\+Names} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, const Q\+String \&\+\_\+filter, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_a277ec5bd445e10fcda9e16b6ed15c6b2}\label{namespaceACG_a277ec5bd445e10fcda9e16b6ed15c6b2}} 
Q\+String\+List {\bfseries get\+Open\+Mesh\+Names} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_a6aba7a4d16e2262004df5fa53cc84745}\label{namespaceACG_a6aba7a4d16e2262004df5fa53cc84745}} 
Q\+String {\bfseries get\+Save\+File\+Name} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, const Q\+String \&\+\_\+filter, bool \+\_\+ask\+OW, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_aba8a82a94b158fdfc9eb215a98ad226d}\label{namespaceACG_aba8a82a94b158fdfc9eb215a98ad226d}} 
Q\+String {\bfseries get\+Save\+Mesh\+Name} (Q\+Widget $\ast$\+\_\+parent, const Q\+String \&\+\_\+caption, bool \+\_\+ask\+OW, const Q\+String \&\+\_\+start)
\item 
\mbox{\Hypertarget{namespaceACG_a3790baaecc5e9f079ecb5c359a082dce}\label{namespaceACG_a3790baaecc5e9f079ecb5c359a082dce}} 
Q\+Variant\+Map {\bfseries json\+\_\+to\+\_\+variant\+\_\+map} (Q\+String json)
\item 
\mbox{\Hypertarget{namespaceACG_afb20ff3f3970ad06b0dad91fe9272ddc}\label{namespaceACG_afb20ff3f3970ad06b0dad91fe9272ddc}} 
\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries to\+\_\+\+Vec4f} (const Q\+Color \&\+\_\+color)
\item 
\mbox{\Hypertarget{namespaceACG_a2408f340c1525c20ff21d9977a688c72}\label{namespaceACG_a2408f340c1525c20ff21d9977a688c72}} 
\hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} {\bfseries to\+\_\+\+Vec4d} (const Q\+Color \&\+\_\+color)
\item 
\mbox{\Hypertarget{namespaceACG_aab9a614db4aecdcd47fbac6c841850d2}\label{namespaceACG_aab9a614db4aecdcd47fbac6c841850d2}} 
Q\+Color {\bfseries to\+\_\+\+Q\+Color} (const \hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} \&c)
\item 
\mbox{\Hypertarget{namespaceACG_a14747bb5dd801339f7f8df17e2ed2aa9}\label{namespaceACG_a14747bb5dd801339f7f8df17e2ed2aa9}} 
{\footnotesize template$<$typename Scalar $>$ }\\std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&\+\_\+stream, const \hyperlink{classACG_1_1KnotvectorT}{KnotvectorT}$<$ Scalar $>$ \&\+\_\+knotvector)
\item 
\mbox{\Hypertarget{namespaceACG_abd941aaec0c4f818d1b5d4869bdcaffb}\label{namespaceACG_abd941aaec0c4f818d1b5d4869bdcaffb}} 
{\footnotesize template$<$typename Scalar $>$ }\\std\+::istream \& {\bfseries operator$>$$>$} (std\+::istream \&\+\_\+is, \hyperlink{classACG_1_1KnotvectorT}{KnotvectorT}$<$ Scalar $>$ \&\+\_\+knotvector)
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespaceACG_a031cd14c088bfa33d374d3ce23084510}\label{namespaceACG_a031cd14c088bfa33d374d3ce23084510}} 
const G\+Lubyte {\bfseries stipple\+Mask} \mbox{[}17\mbox{]}\mbox{[}128\mbox{]}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Namespace providing different geometric functions concerning angles. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{namespaceACG_a725d8f83b113ccc926911cba6f6e649f}\label{namespaceACG_a725d8f83b113ccc926911cba6f6e649f}} 
\index{A\+CG@{A\+CG}!Vec1c@{Vec1c}}
\index{Vec1c@{Vec1c}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1c}{Vec1c}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed char,1$>$ \hyperlink{namespaceACG_a725d8f83b113ccc926911cba6f6e649f}{A\+C\+G\+::\+Vec1c}}

1-\/byte signed vector 

Definition at line 73 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a6fef367799d5538adc3375ffdb8a542a}\label{namespaceACG_a6fef367799d5538adc3375ffdb8a542a}} 
\index{A\+CG@{A\+CG}!Vec1d@{Vec1d}}
\index{Vec1d@{Vec1d}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1d}{Vec1d}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$double,1$>$ \hyperlink{namespaceACG_a6fef367799d5538adc3375ffdb8a542a}{A\+C\+G\+::\+Vec1d}}

1-\/double vector 

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

\mbox{\Hypertarget{namespaceACG_a862b25bcbee8cd1298633fc922ed2a9d}\label{namespaceACG_a862b25bcbee8cd1298633fc922ed2a9d}} 
\index{A\+CG@{A\+CG}!Vec1f@{Vec1f}}
\index{Vec1f@{Vec1f}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1f}{Vec1f}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$float,1$>$ \hyperlink{namespaceACG_a862b25bcbee8cd1298633fc922ed2a9d}{A\+C\+G\+::\+Vec1f}}

1-\/float vector 

Definition at line 85 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_aceb84852d824662eaf1db56be313ed0d}\label{namespaceACG_aceb84852d824662eaf1db56be313ed0d}} 
\index{A\+CG@{A\+CG}!Vec1i@{Vec1i}}
\index{Vec1i@{Vec1i}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1i}{Vec1i}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed int,1$>$ \hyperlink{namespaceACG_aceb84852d824662eaf1db56be313ed0d}{A\+C\+G\+::\+Vec1i}}

1-\/int signed vector 

Definition at line 81 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_adff0d06544349fc9fba6fed1c413f721}\label{namespaceACG_adff0d06544349fc9fba6fed1c413f721}} 
\index{A\+CG@{A\+CG}!Vec1s@{Vec1s}}
\index{Vec1s@{Vec1s}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1s}{Vec1s}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed short int,1$>$ \hyperlink{namespaceACG_adff0d06544349fc9fba6fed1c413f721}{A\+C\+G\+::\+Vec1s}}

1-\/short signed vector 

Definition at line 77 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a353d5c2637cc37b5f0f97d45b5c0ee07}\label{namespaceACG_a353d5c2637cc37b5f0f97d45b5c0ee07}} 
\index{A\+CG@{A\+CG}!Vec1uc@{Vec1uc}}
\index{Vec1uc@{Vec1uc}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1uc}{Vec1uc}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned char,1$>$ \hyperlink{namespaceACG_a353d5c2637cc37b5f0f97d45b5c0ee07}{A\+C\+G\+::\+Vec1uc}}

1-\/byte unsigned vector 

Definition at line 75 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a71faded00c3142204ff2de96cb89d251}\label{namespaceACG_a71faded00c3142204ff2de96cb89d251}} 
\index{A\+CG@{A\+CG}!Vec1ui@{Vec1ui}}
\index{Vec1ui@{Vec1ui}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1ui}{Vec1ui}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned int,1$>$ \hyperlink{namespaceACG_a71faded00c3142204ff2de96cb89d251}{A\+C\+G\+::\+Vec1ui}}

1-\/int unsigned vector 

Definition at line 83 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a626f5eb0b6a20169e50a38c0259e54a8}\label{namespaceACG_a626f5eb0b6a20169e50a38c0259e54a8}} 
\index{A\+CG@{A\+CG}!Vec1us@{Vec1us}}
\index{Vec1us@{Vec1us}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec1us}{Vec1us}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned short int,1$>$ \hyperlink{namespaceACG_a626f5eb0b6a20169e50a38c0259e54a8}{A\+C\+G\+::\+Vec1us}}

1-\/short unsigned vector 

Definition at line 79 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a2c43678913410cfe5a2fc6e9f9289896}\label{namespaceACG_a2c43678913410cfe5a2fc6e9f9289896}} 
\index{A\+CG@{A\+CG}!Vec2c@{Vec2c}}
\index{Vec2c@{Vec2c}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2c}{Vec2c}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed char,2$>$ \hyperlink{namespaceACG_a2c43678913410cfe5a2fc6e9f9289896}{A\+C\+G\+::\+Vec2c}}

2-\/byte signed vector 

Definition at line 90 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}\label{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}} 
\index{A\+CG@{A\+CG}!Vec2d@{Vec2d}}
\index{Vec2d@{Vec2d}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2d}{Vec2d}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$double,2$>$ \hyperlink{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}{A\+C\+G\+::\+Vec2d}}

2-\/double vector 

Definition at line 104 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}\label{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}} 
\index{A\+CG@{A\+CG}!Vec2f@{Vec2f}}
\index{Vec2f@{Vec2f}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2f}{Vec2f}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$float,2$>$ \hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f}}

2-\/float vector 

Definition at line 102 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}\label{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}} 
\index{A\+CG@{A\+CG}!Vec2i@{Vec2i}}
\index{Vec2i@{Vec2i}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2i}{Vec2i}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed int,2$>$ \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i}}

2-\/int signed vector 

Definition at line 98 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a9c7365a5dfa49478905cd82810b3f437}\label{namespaceACG_a9c7365a5dfa49478905cd82810b3f437}} 
\index{A\+CG@{A\+CG}!Vec2s@{Vec2s}}
\index{Vec2s@{Vec2s}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2s}{Vec2s}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed short int,2$>$ \hyperlink{namespaceACG_a9c7365a5dfa49478905cd82810b3f437}{A\+C\+G\+::\+Vec2s}}

2-\/short signed vector 

Definition at line 94 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ab14d8036392954cac3392ac9f7f87ed9}\label{namespaceACG_ab14d8036392954cac3392ac9f7f87ed9}} 
\index{A\+CG@{A\+CG}!Vec2uc@{Vec2uc}}
\index{Vec2uc@{Vec2uc}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2uc}{Vec2uc}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned char,2$>$ \hyperlink{namespaceACG_ab14d8036392954cac3392ac9f7f87ed9}{A\+C\+G\+::\+Vec2uc}}

2-\/byte unsigned vector 

Definition at line 92 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ae4755d4e07cff81eb7a26cd0540ce314}\label{namespaceACG_ae4755d4e07cff81eb7a26cd0540ce314}} 
\index{A\+CG@{A\+CG}!Vec2ui@{Vec2ui}}
\index{Vec2ui@{Vec2ui}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2ui}{Vec2ui}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned int,2$>$ \hyperlink{namespaceACG_ae4755d4e07cff81eb7a26cd0540ce314}{A\+C\+G\+::\+Vec2ui}}

2-\/int unsigned vector 

Definition at line 100 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_abbb3a17a501d4c2bfbf409b564ca0c38}\label{namespaceACG_abbb3a17a501d4c2bfbf409b564ca0c38}} 
\index{A\+CG@{A\+CG}!Vec2us@{Vec2us}}
\index{Vec2us@{Vec2us}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec2us}{Vec2us}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned short int,2$>$ \hyperlink{namespaceACG_abbb3a17a501d4c2bfbf409b564ca0c38}{A\+C\+G\+::\+Vec2us}}

2-\/short unsigned vector 

Definition at line 96 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_aaccef8248aae03d3212d67c72d1e5bb2}\label{namespaceACG_aaccef8248aae03d3212d67c72d1e5bb2}} 
\index{A\+CG@{A\+CG}!Vec3b@{Vec3b}}
\index{Vec3b@{Vec3b}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3b}{Vec3b}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$bool,3$>$ \hyperlink{namespaceACG_aaccef8248aae03d3212d67c72d1e5bb2}{A\+C\+G\+::\+Vec3b}}

3-\/bool vector 

Definition at line 123 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a45e7b55467250f36295d54e09895bbda}\label{namespaceACG_a45e7b55467250f36295d54e09895bbda}} 
\index{A\+CG@{A\+CG}!Vec3c@{Vec3c}}
\index{Vec3c@{Vec3c}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3c}{Vec3c}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed char,3$>$ \hyperlink{namespaceACG_a45e7b55467250f36295d54e09895bbda}{A\+C\+G\+::\+Vec3c}}

3-\/byte signed vector 

Definition at line 107 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}\label{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}} 
\index{A\+CG@{A\+CG}!Vec3d@{Vec3d}}
\index{Vec3d@{Vec3d}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3d}{Vec3d}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$double,3$>$ \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d}}

3-\/double vector 

Definition at line 121 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}\label{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}} 
\index{A\+CG@{A\+CG}!Vec3f@{Vec3f}}
\index{Vec3f@{Vec3f}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3f}{Vec3f}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$float,3$>$ \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f}}

3-\/float vector 

Definition at line 119 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_aa30a8644d70fd14b6430f3819953a431}\label{namespaceACG_aa30a8644d70fd14b6430f3819953a431}} 
\index{A\+CG@{A\+CG}!Vec3i@{Vec3i}}
\index{Vec3i@{Vec3i}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3i}{Vec3i}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed int,3$>$ \hyperlink{namespaceACG_aa30a8644d70fd14b6430f3819953a431}{A\+C\+G\+::\+Vec3i}}

3-\/int signed vector 

Definition at line 115 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ad1592a064c1c7644437d55458e9ae5a7}\label{namespaceACG_ad1592a064c1c7644437d55458e9ae5a7}} 
\index{A\+CG@{A\+CG}!Vec3s@{Vec3s}}
\index{Vec3s@{Vec3s}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3s}{Vec3s}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed short int,3$>$ \hyperlink{namespaceACG_ad1592a064c1c7644437d55458e9ae5a7}{A\+C\+G\+::\+Vec3s}}

3-\/short signed vector 

Definition at line 111 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a9334e4037c813f1a3d41719ee499dedc}\label{namespaceACG_a9334e4037c813f1a3d41719ee499dedc}} 
\index{A\+CG@{A\+CG}!Vec3uc@{Vec3uc}}
\index{Vec3uc@{Vec3uc}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3uc}{Vec3uc}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned char,3$>$ \hyperlink{namespaceACG_a9334e4037c813f1a3d41719ee499dedc}{A\+C\+G\+::\+Vec3uc}}

3-\/byte unsigned vector 

Definition at line 109 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a916145c1569f644e2559d780955f3050}\label{namespaceACG_a916145c1569f644e2559d780955f3050}} 
\index{A\+CG@{A\+CG}!Vec3ui@{Vec3ui}}
\index{Vec3ui@{Vec3ui}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3ui}{Vec3ui}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned int,3$>$ \hyperlink{namespaceACG_a916145c1569f644e2559d780955f3050}{A\+C\+G\+::\+Vec3ui}}

3-\/int unsigned vector 

Definition at line 117 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a5b0d2f1bbb1c83da9b3a732f857f29d6}\label{namespaceACG_a5b0d2f1bbb1c83da9b3a732f857f29d6}} 
\index{A\+CG@{A\+CG}!Vec3us@{Vec3us}}
\index{Vec3us@{Vec3us}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec3us}{Vec3us}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned short int,3$>$ \hyperlink{namespaceACG_a5b0d2f1bbb1c83da9b3a732f857f29d6}{A\+C\+G\+::\+Vec3us}}

3-\/short unsigned vector 

Definition at line 113 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a1fea333b24ffe7d203eee0f3db68e520}\label{namespaceACG_a1fea333b24ffe7d203eee0f3db68e520}} 
\index{A\+CG@{A\+CG}!Vec4c@{Vec4c}}
\index{Vec4c@{Vec4c}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4c}{Vec4c}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed char,4$>$ \hyperlink{namespaceACG_a1fea333b24ffe7d203eee0f3db68e520}{A\+C\+G\+::\+Vec4c}}

4-\/byte signed vector 

Definition at line 126 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}\label{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}} 
\index{A\+CG@{A\+CG}!Vec4d@{Vec4d}}
\index{Vec4d@{Vec4d}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4d}{Vec4d}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$double,4$>$ \hyperlink{namespaceACG_a2ba4d05b21aa0247255d38e770bcc255}{A\+C\+G\+::\+Vec4d}}

4-\/double vector 

Definition at line 140 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}\label{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}} 
\index{A\+CG@{A\+CG}!Vec4f@{Vec4f}}
\index{Vec4f@{Vec4f}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4f}{Vec4f}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$float,4$>$ \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f}}

4-\/float vector 

Definition at line 138 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a8cc325594ae505979f752598d1d81c40}\label{namespaceACG_a8cc325594ae505979f752598d1d81c40}} 
\index{A\+CG@{A\+CG}!Vec4i@{Vec4i}}
\index{Vec4i@{Vec4i}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4i}{Vec4i}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed int,4$>$ \hyperlink{namespaceACG_a8cc325594ae505979f752598d1d81c40}{A\+C\+G\+::\+Vec4i}}

4-\/int signed vector 

Definition at line 134 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a0212c1360f952d61874d5c20aa25f215}\label{namespaceACG_a0212c1360f952d61874d5c20aa25f215}} 
\index{A\+CG@{A\+CG}!Vec4s@{Vec4s}}
\index{Vec4s@{Vec4s}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4s}{Vec4s}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed short int,4$>$ \hyperlink{namespaceACG_a0212c1360f952d61874d5c20aa25f215}{A\+C\+G\+::\+Vec4s}}

4-\/short signed vector 

Definition at line 130 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_adb89a8d57b6d179ad535c0880a8b616e}\label{namespaceACG_adb89a8d57b6d179ad535c0880a8b616e}} 
\index{A\+CG@{A\+CG}!Vec4uc@{Vec4uc}}
\index{Vec4uc@{Vec4uc}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4uc}{Vec4uc}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned char,4$>$ \hyperlink{namespaceACG_adb89a8d57b6d179ad535c0880a8b616e}{A\+C\+G\+::\+Vec4uc}}

4-\/byte unsigned vector 

Definition at line 128 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_af5c09af5e4de06e8474b9995b3d39d30}\label{namespaceACG_af5c09af5e4de06e8474b9995b3d39d30}} 
\index{A\+CG@{A\+CG}!Vec4ui@{Vec4ui}}
\index{Vec4ui@{Vec4ui}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4ui}{Vec4ui}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned int,4$>$ \hyperlink{namespaceACG_af5c09af5e4de06e8474b9995b3d39d30}{A\+C\+G\+::\+Vec4ui}}

4-\/int unsigned vector 

Definition at line 136 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ac2512775d5c458680b73e54430f688c8}\label{namespaceACG_ac2512775d5c458680b73e54430f688c8}} 
\index{A\+CG@{A\+CG}!Vec4us@{Vec4us}}
\index{Vec4us@{Vec4us}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec4us}{Vec4us}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned short int,4$>$ \hyperlink{namespaceACG_ac2512775d5c458680b73e54430f688c8}{A\+C\+G\+::\+Vec4us}}

4-\/short unsigned vector 

Definition at line 132 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_acd1483bebd241438fbcce035b9cf3c87}\label{namespaceACG_acd1483bebd241438fbcce035b9cf3c87}} 
\index{A\+CG@{A\+CG}!Vec6c@{Vec6c}}
\index{Vec6c@{Vec6c}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6c}{Vec6c}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed char,6$>$ \hyperlink{namespaceACG_acd1483bebd241438fbcce035b9cf3c87}{A\+C\+G\+::\+Vec6c}}

6-\/byte signed vector 

Definition at line 143 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ac140c644ae4d13ba4158811ec9f9f9cc}\label{namespaceACG_ac140c644ae4d13ba4158811ec9f9f9cc}} 
\index{A\+CG@{A\+CG}!Vec6d@{Vec6d}}
\index{Vec6d@{Vec6d}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6d}{Vec6d}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$double,6$>$ \hyperlink{namespaceACG_ac140c644ae4d13ba4158811ec9f9f9cc}{A\+C\+G\+::\+Vec6d}}

6-\/double vector 

Definition at line 157 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ab861a52a2ea3145173a7da0264c200f9}\label{namespaceACG_ab861a52a2ea3145173a7da0264c200f9}} 
\index{A\+CG@{A\+CG}!Vec6f@{Vec6f}}
\index{Vec6f@{Vec6f}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6f}{Vec6f}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$float,6$>$ \hyperlink{namespaceACG_ab861a52a2ea3145173a7da0264c200f9}{A\+C\+G\+::\+Vec6f}}

6-\/float vector 

Definition at line 155 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a1c11490dc4454eeb24f5615efad62422}\label{namespaceACG_a1c11490dc4454eeb24f5615efad62422}} 
\index{A\+CG@{A\+CG}!Vec6i@{Vec6i}}
\index{Vec6i@{Vec6i}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6i}{Vec6i}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed int,6$>$ \hyperlink{namespaceACG_a1c11490dc4454eeb24f5615efad62422}{A\+C\+G\+::\+Vec6i}}

6-\/int signed vector 

Definition at line 151 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a9e7d71eb0c0d5725cdfae765cc9cdfc1}\label{namespaceACG_a9e7d71eb0c0d5725cdfae765cc9cdfc1}} 
\index{A\+CG@{A\+CG}!Vec6s@{Vec6s}}
\index{Vec6s@{Vec6s}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6s}{Vec6s}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$signed short int,6$>$ \hyperlink{namespaceACG_a9e7d71eb0c0d5725cdfae765cc9cdfc1}{A\+C\+G\+::\+Vec6s}}

6-\/short signed vector 

Definition at line 147 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a85bf06c58129c761a11649ffd7bc624e}\label{namespaceACG_a85bf06c58129c761a11649ffd7bc624e}} 
\index{A\+CG@{A\+CG}!Vec6uc@{Vec6uc}}
\index{Vec6uc@{Vec6uc}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6uc}{Vec6uc}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned char,6$>$ \hyperlink{namespaceACG_a85bf06c58129c761a11649ffd7bc624e}{A\+C\+G\+::\+Vec6uc}}

6-\/byte unsigned vector 

Definition at line 145 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_ad7bb07e825647a6f9c018cdd9607576f}\label{namespaceACG_ad7bb07e825647a6f9c018cdd9607576f}} 
\index{A\+CG@{A\+CG}!Vec6ui@{Vec6ui}}
\index{Vec6ui@{Vec6ui}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6ui}{Vec6ui}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned int,6$>$ \hyperlink{namespaceACG_ad7bb07e825647a6f9c018cdd9607576f}{A\+C\+G\+::\+Vec6ui}}

6-\/int unsigned vector 

Definition at line 153 of file Vector\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a880a548f64a7afc3a2cbe5c32c6c7966}\label{namespaceACG_a880a548f64a7afc3a2cbe5c32c6c7966}} 
\index{A\+CG@{A\+CG}!Vec6us@{Vec6us}}
\index{Vec6us@{Vec6us}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Vec6us}{Vec6us}}
{\footnotesize\ttfamily typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$unsigned short int,6$>$ \hyperlink{namespaceACG_a880a548f64a7afc3a2cbe5c32c6c7966}{A\+C\+G\+::\+Vec6us}}

6-\/short unsigned vector 

Definition at line 149 of file Vector\+T.\+hh.



\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{namespaceACG_adda93d34c3eb7b2c524b28f383009a7c}\label{namespaceACG_adda93d34c3eb7b2c524b28f383009a7c}} 
\index{A\+CG@{A\+CG}!Multiply\+From@{Multiply\+From}}
\index{Multiply\+From@{Multiply\+From}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{Multiply\+From}{MultiplyFrom}}
{\footnotesize\ttfamily enum \hyperlink{namespaceACG_adda93d34c3eb7b2c524b28f383009a7c}{A\+C\+G\+::\+Multiply\+From}}

enum to chose whether to multiply new matrices from right (default) or left to the current matrix 

Definition at line 73 of file G\+L\+Matrix\+T.\+hh.

\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122a}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122a}} 
\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE}}
\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE}{VERTEX\_USAGE}}
{\footnotesize\ttfamily enum \hyperlink{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122a}{A\+C\+G\+::\+V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+GE}}



-\/--- input name in vertex shader -\/-\/-\/-\/--- 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa50a4029397cce53cd0ebb727e5165a5c}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa50a4029397cce53cd0ebb727e5165a5c}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON&\char`\"{}in\+Position\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa0339cb865b55fd11e0bb1bd399f408be}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa0339cb865b55fd11e0bb1bd399f408be}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+N\+O\+R\+M\+AL&\char`\"{}in\+Normal\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aab44a0a514fea53313de54ef79e549756}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aab44a0a514fea53313de54ef79e549756}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+T\+E\+X\+C\+O\+O\+RD&\char`\"{}in\+Tex\+Coord\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa4b21ea5dc7270209b96bdcc7555f0ec0}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa4b21ea5dc7270209b96bdcc7555f0ec0}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+C\+O\+L\+OR&\char`\"{}in\+Color\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa7a0ba12f79a345703029ea6a6ca16c4d}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aa7a0ba12f79a345703029ea6a6ca16c4d}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+W\+E\+I\+G\+H\+TS&\char`\"{}in\+Blend\+Weights\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aaa4a5473356167654545aaf929f6619da}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aaa4a5473356167654545aaf929f6619da}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+B\+L\+E\+N\+D\+I\+N\+D\+I\+C\+ES&\char`\"{}in\+Blend\+Indices\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT}!A\+CG@{A\+CG}}\index{A\+CG@{A\+CG}!V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT@{V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT}}}\mbox{\Hypertarget{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aafa3293a2b16c5e0fdca7d9282ee8409b}\label{namespaceACG_a8e20f3e5c21bdb768c1740315eeb122aafa3293a2b16c5e0fdca7d9282ee8409b}} 
V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+I\+N\+P\+UT&defined by user via \hyperlink{structACG_1_1VertexElement_ae8adec1f647bebb6ea4585b00d2a0c57}{Vertex\+Element\+::shader\+Input\+Name\+\_\+} \\
\hline

\end{DoxyEnumFields}


Definition at line 63 of file Vertex\+Declaration.\+hh.



\subsection{Function Documentation}
\mbox{\Hypertarget{namespaceACG_a89b1ba8135662af6ebe94dd61186d2c4}\label{namespaceACG_a89b1ba8135662af6ebe94dd61186d2c4}} 
\index{A\+CG@{A\+CG}!bspline\+Basis\+Derivative@{bspline\+Basis\+Derivative}}
\index{bspline\+Basis\+Derivative@{bspline\+Basis\+Derivative}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{bspline\+Basis\+Derivative()}{bsplineBasisDerivative()}}
{\footnotesize\ttfamily template$<$typename Scalar $>$ \\
Scalar A\+C\+G\+::bspline\+Basis\+Derivative (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i,  }\item[{int}]{\+\_\+degree,  }\item[{Scalar}]{\+\_\+t,  }\item[{int}]{\+\_\+der,  }\item[{const std\+::vector$<$ Scalar $>$ \&}]{\+\_\+knots }\end{DoxyParamCaption})}



Compute derivative of a single basis function. 

Uses the recursive definition of the basis function. This is slower than using \hyperlink{namespaceACG_a275c546088adbd0a8afd7cdf0a533148}{bspline\+Basis\+Derivatives()} for all values in a span.


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & index of basis function \\
\hline
{\em \+\_\+degree} & spline degree \\
\hline
{\em \+\_\+t} & parameter value \\
\hline
{\em \+\_\+der} & order of derivative \\
\hline
{\em \+\_\+knots} & knotvector \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
derivative of basis function value 
\end{DoxyReturn}


Definition at line 328 of file B\+Spline\+Basis.\+cc.

\mbox{\Hypertarget{namespaceACG_a275c546088adbd0a8afd7cdf0a533148}\label{namespaceACG_a275c546088adbd0a8afd7cdf0a533148}} 
\index{A\+CG@{A\+CG}!bspline\+Basis\+Derivatives@{bspline\+Basis\+Derivatives}}
\index{bspline\+Basis\+Derivatives@{bspline\+Basis\+Derivatives}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{bspline\+Basis\+Derivatives()}{bsplineBasisDerivatives()}}
{\footnotesize\ttfamily template$<$typename Scalar $>$ \\
void A\+C\+G\+::bspline\+Basis\+Derivatives (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Scalar $>$ \&}]{\+\_\+ders,  }\item[{const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&}]{\+\_\+span,  }\item[{Scalar}]{\+\_\+t,  }\item[{int}]{\+\_\+der,  }\item[{const std\+::vector$<$ Scalar $>$ \&}]{\+\_\+knots,  }\item[{std\+::vector$<$ Scalar $>$ $\ast$}]{\+\_\+function\+Vals }\end{DoxyParamCaption})}



Compute derivatives of basis functions in a span. 

Uses a fast algorithm to compute all derivatives of basis functions in a span. The output vector \+\_\+ders must have enough space to hold \+\_\+span\mbox{[}1\mbox{]} -\/ \+\_\+span\mbox{[}0\mbox{]} values.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ders} & output derivative values of all basis functions in the span \\
\hline
{\em \+\_\+span} & span of the parameter \+\_\+t \\
\hline
{\em \+\_\+t} & parameter value \\
\hline
{\em \+\_\+der} & order of derivative (ie. first, second, third order...) \\
\hline
{\em \+\_\+knots} & knotvector \\
\hline
{\em \+\_\+function\+Vals} & output basis function values, null is accepted (optional) \\
\hline
\end{DoxyParams}


Definition at line 167 of file B\+Spline\+Basis.\+cc.

\mbox{\Hypertarget{namespaceACG_a2b5d777b57b0c725743ea7edc5c9ca49}\label{namespaceACG_a2b5d777b57b0c725743ea7edc5c9ca49}} 
\index{A\+CG@{A\+CG}!bspline\+Basis\+Function@{bspline\+Basis\+Function}}
\index{bspline\+Basis\+Function@{bspline\+Basis\+Function}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{bspline\+Basis\+Function()}{bsplineBasisFunction()}}
{\footnotesize\ttfamily template$<$typename Scalar $>$ \\
Scalar A\+C\+G\+::bspline\+Basis\+Function (\begin{DoxyParamCaption}\item[{int}]{\+\_\+i,  }\item[{int}]{\+\_\+degree,  }\item[{Scalar}]{\+\_\+t,  }\item[{const std\+::vector$<$ Scalar $>$ \&}]{\+\_\+knots }\end{DoxyParamCaption})}



Evaluate a single basis function. 

Uses the recursive definition of the basis function. This is slower than using \hyperlink{namespaceACG_a414bf0f8fb104625263ef6e5e9470d50}{bspline\+Basis\+Functions()} for all values in a span.


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & index of basis function \\
\hline
{\em \+\_\+degree} & spline degree \\
\hline
{\em \+\_\+t} & parameter value \\
\hline
{\em \+\_\+knots} & knotvector \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
basis function value 
\end{DoxyReturn}


Definition at line 289 of file B\+Spline\+Basis.\+cc.

\mbox{\Hypertarget{namespaceACG_a414bf0f8fb104625263ef6e5e9470d50}\label{namespaceACG_a414bf0f8fb104625263ef6e5e9470d50}} 
\index{A\+CG@{A\+CG}!bspline\+Basis\+Functions@{bspline\+Basis\+Functions}}
\index{bspline\+Basis\+Functions@{bspline\+Basis\+Functions}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{bspline\+Basis\+Functions()}{bsplineBasisFunctions()}}
{\footnotesize\ttfamily template$<$typename Scalar $>$ \\
void A\+C\+G\+::bspline\+Basis\+Functions (\begin{DoxyParamCaption}\item[{std\+::vector$<$ Scalar $>$ \&}]{\+\_\+N,  }\item[{const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&}]{\+\_\+span,  }\item[{Scalar}]{\+\_\+t,  }\item[{const std\+::vector$<$ Scalar $>$ \&}]{\+\_\+knots }\end{DoxyParamCaption})}



Evaluate basis functions in a span. 

Uses a fast algorithm to compute all basis functions in a span. The output vector \+\_\+N must have enough space to hold \+\_\+span\mbox{[}1\mbox{]} -\/ \+\_\+span\mbox{[}0\mbox{]} values.


\begin{DoxyParams}{Parameters}
{\em \+\_\+N} & output basis function values \\
\hline
{\em \+\_\+span} & span of the parameter \+\_\+t \\
\hline
{\em \+\_\+t} & parameter value \\
\hline
{\em \+\_\+knots} & knotvector \\
\hline
\end{DoxyParams}


Definition at line 119 of file B\+Spline\+Basis.\+cc.

\mbox{\Hypertarget{namespaceACG_a6ff79830b334b22d9ca927beadf5ac17}\label{namespaceACG_a6ff79830b334b22d9ca927beadf5ac17}} 
\index{A\+CG@{A\+CG}!bspline\+Span@{bspline\+Span}}
\index{bspline\+Span@{bspline\+Span}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{bspline\+Span()}{bsplineSpan()}}
{\footnotesize\ttfamily template$<$typename Scalar $>$ \\
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} A\+C\+G\+::bspline\+Span (\begin{DoxyParamCaption}\item[{Scalar}]{\+\_\+t,  }\item[{int}]{\+\_\+degree,  }\item[{const std\+::vector$<$ Scalar $>$ \&}]{\+\_\+knots }\end{DoxyParamCaption})}



Find the span of a parameter value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+t} & parameter value \\
\hline
{\em \+\_\+degree} & spline degree \\
\hline
{\em \+\_\+knots} & knotvector \\
\hline
\end{DoxyParams}


Definition at line 71 of file B\+Spline\+Basis.\+cc.

\mbox{\Hypertarget{namespaceACG_a54d712a40729b969c2b4908bccfc78f8}\label{namespaceACG_a54d712a40729b969c2b4908bccfc78f8}} 
\index{A\+CG@{A\+CG}!check\+Extension\+Supported@{check\+Extension\+Supported}}
\index{check\+Extension\+Supported@{check\+Extension\+Supported}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{check\+Extension\+Supported()}{checkExtensionSupported()}}
{\footnotesize\ttfamily bool A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT A\+C\+G\+::check\+Extension\+Supported (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+extension }\end{DoxyParamCaption})}

Check if the extension given by a std\+::string is supported by the current Open\+GL extension Cache gl\+Get\+String(...) output because depending on the graphics driver it might return 0 the second time we call it.

Definition at line 107 of file gl.\+cc.

\mbox{\Hypertarget{namespaceACG_ad48702b05d6c605490d39d0d48f4dd27}\label{namespaceACG_ad48702b05d6c605490d39d0d48f4dd27}} 
\index{A\+CG@{A\+CG}!get\+Extension\+String@{get\+Extension\+String}}
\index{get\+Extension\+String@{get\+Extension\+String}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{get\+Extension\+String()}{getExtensionString()}}
{\footnotesize\ttfamily std\+::string A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT A\+C\+G\+::get\+Extension\+String (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get\+Extension\+String returns a string containing all supported Open\+GL extensions this function uses the new style to query the extensions 

\begin{DoxyReturn}{Returns}
std\+::string with all supported extensions 
\end{DoxyReturn}


Definition at line 100 of file gl.\+cc.

\mbox{\Hypertarget{namespaceACG_ad83417cdf0490017ecf6fa7ba32e40c7}\label{namespaceACG_ad83417cdf0490017ecf6fa7ba32e40c7}} 
\index{A\+CG@{A\+CG}!gl\+Check\+Errors@{gl\+Check\+Errors}}
\index{gl\+Check\+Errors@{gl\+Check\+Errors}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{gl\+Check\+Errors()}{glCheckErrors()}}
{\footnotesize\ttfamily void A\+C\+G\+::gl\+Check\+Errors (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Nice wrapper that outputs all current Open\+GL errors to std\+::cerr. If no error is present nothing is printed. 

Definition at line 96 of file G\+L\+Error.\+hh.

\mbox{\Hypertarget{namespaceACG_a0548eb1d900b14ba2fe68a7ab6d4b748}\label{namespaceACG_a0548eb1d900b14ba2fe68a7ab6d4b748}} 
\index{A\+CG@{A\+CG}!gl\+Error\+To\+String@{gl\+Error\+To\+String}}
\index{gl\+Error\+To\+String@{gl\+Error\+To\+String}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{gl\+Error\+To\+String()}{glErrorToString()}}
{\footnotesize\ttfamily std\+::string A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT A\+C\+G\+::gl\+Error\+To\+String (\begin{DoxyParamCaption}\item[{G\+Lenum}]{\+\_\+error }\end{DoxyParamCaption})}



replaces the glu\+Error\+To\+String function at least for the standard Open\+GL Headers 



Definition at line 61 of file G\+L\+Error.\+cc.

\mbox{\Hypertarget{namespaceACG_a5ce0d1060a927a9f2e27ad5020f40be9}\label{namespaceACG_a5ce0d1060a927a9f2e27ad5020f40be9}} 
\index{A\+CG@{A\+CG}!open\+G\+L\+Version@{open\+G\+L\+Version}}
\index{open\+G\+L\+Version@{open\+G\+L\+Version}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{open\+G\+L\+Version()}{openGLVersion()}}
{\footnotesize\ttfamily bool A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT A\+C\+G\+::open\+G\+L\+Version (\begin{DoxyParamCaption}\item[{const int}]{\+\_\+major,  }\item[{const int}]{\+\_\+minor,  }\item[{bool}]{\+\_\+verbose }\end{DoxyParamCaption})}

Check if Open\+GL Version is greater or equal than the given values 

Definition at line 129 of file gl.\+cc.

\mbox{\Hypertarget{namespaceACG_a4aeb5d3e1f51556c80e030d25036eb31}\label{namespaceACG_a4aeb5d3e1f51556c80e030d25036eb31}} 
\index{A\+CG@{A\+CG}!open\+G\+L\+Version\+Test@{open\+G\+L\+Version\+Test}}
\index{open\+G\+L\+Version\+Test@{open\+G\+L\+Version\+Test}!A\+CG@{A\+CG}}
\subsubsection{\texorpdfstring{open\+G\+L\+Version\+Test()}{openGLVersionTest()}}
{\footnotesize\ttfamily bool A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT A\+C\+G\+::open\+G\+L\+Version\+Test (\begin{DoxyParamCaption}\item[{const int}]{\+\_\+major,  }\item[{const int}]{\+\_\+minor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Test if Open\+GL Version is greater or equal than the given values No output is generated, if the Open\+GL version is less than the tested value 

Definition at line 275 of file gl.\+hh.

