\hypertarget{a08060}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Strip\+ProcessorT$<$ Mesh $>$ Class Template Reference}
\label{a08060}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+Processor\+T$<$ Mesh $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+Processor\+T$<$ Mesh $>$}}


{\ttfamily \#include $<$A\+C\+G/\+Scene\+Graph/\+Strip\+Processor\+T.\+hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_aaa81f0e868174d40fa71d557ba3c2bbf}\label{a08060_aaa81f0e868174d40fa71d557ba3c2bbf}} 
typedef unsigned int {\bfseries Index}
\item 
\mbox{\Hypertarget{a08060_aad464a436d4bd135436fdd0192290852}\label{a08060_aad464a436d4bd135436fdd0192290852}} 
typedef std\+::vector$<$ \hyperlink{a08052}{Strip} $>$ {\bfseries Strips}
\item 
\mbox{\Hypertarget{a08060_ae6fb2bd23e052f05e52212d0dc3af57b}\label{a08060_ae6fb2bd23e052f05e52212d0dc3af57b}} 
typedef Strips\+::const\+\_\+iterator {\bfseries Strips\+Iterator}
\item 
\mbox{\Hypertarget{a08060_a6838b6acff268dc319eb03d667ea4ddc}\label{a08060_a6838b6acff268dc319eb03d667ea4ddc}} 
typedef Mesh\+::\+Face\+Handle {\bfseries Face\+Handle}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a027337d62c71413a09d33376c3283743}\label{a08060_a027337d62c71413a09d33376c3283743}} 
\hyperlink{a08060_a027337d62c71413a09d33376c3283743}{Strip\+ProcessorT} (\hyperlink{a08764}{Mesh} \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a591e8f399146cfe0d9de48acfddb9209}\label{a08060_a591e8f399146cfe0d9de48acfddb9209}} 
\hyperlink{a08060_a591e8f399146cfe0d9de48acfddb9209}{$\sim$\+Strip\+ProcessorT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_addf8e7dba0b686c142d606e6a0401649}\label{a08060_addf8e7dba0b686c142d606e6a0401649}} 
unsigned int \hyperlink{a08060_addf8e7dba0b686c142d606e6a0401649}{stripify} ()
\begin{DoxyCompactList}\small\item\em Compute triangle strips, returns number of strips. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_ae9703bee3807c1cc6a7bf5b46bfcb709}\label{a08060_ae9703bee3807c1cc6a7bf5b46bfcb709}} 
void \hyperlink{a08060_ae9703bee3807c1cc6a7bf5b46bfcb709}{clear} ()
\begin{DoxyCompactList}\small\item\em delete all strips \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a04b35072f736fe0898603ff7c4e068b6}\label{a08060_a04b35072f736fe0898603ff7c4e068b6}} 
unsigned int \hyperlink{a08060_a04b35072f736fe0898603ff7c4e068b6}{n\+Strips} () const
\begin{DoxyCompactList}\small\item\em returns number of strips \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a705487d389b736991e62d39b989252b6}\label{a08060_a705487d389b736991e62d39b989252b6}} 
Strips\+Iterator \hyperlink{a08060_a705487d389b736991e62d39b989252b6}{begin} () const
\begin{DoxyCompactList}\small\item\em Access strips. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_af56fafb446c3680ff3fc49f4a923ad1f}\label{a08060_af56fafb446c3680ff3fc49f4a923ad1f}} 
Strips\+Iterator \hyperlink{a08060_af56fafb446c3680ff3fc49f4a923ad1f}{end} () const
\begin{DoxyCompactList}\small\item\em Access strips. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a14ff5a1c5d372cc9324a9e687c71aa6e}\label{a08060_a14ff5a1c5d372cc9324a9e687c71aa6e}} 
void \hyperlink{a08060_a14ff5a1c5d372cc9324a9e687c71aa6e}{convexity\+Test} (Face\+Handle \+\_\+fh)
\begin{DoxyCompactList}\small\item\em Test whether face is convex. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a2a65ba274cae76a58be2de18d87c97f6}\label{a08060_a2a65ba274cae76a58be2de18d87c97f6}} 
\hyperlink{a08888}{Open\+Mesh\+::\+F\+Prop\+HandleT}$<$ bool $>$\+::reference {\bfseries processed} (typename Mesh\+::\+Face\+Handle \+\_\+fh)
\item 
\mbox{\Hypertarget{a08060_ac353b6f5f68e0c4b30ffbe279638b24d}\label{a08060_ac353b6f5f68e0c4b30ffbe279638b24d}} 
\hyperlink{a08888}{Open\+Mesh\+::\+F\+Prop\+HandleT}$<$ bool $>$\+::reference {\bfseries used} (typename Mesh\+::\+Face\+Handle \+\_\+fh)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a40aa14bc02072a7d0306126dcefce633}\label{a08060_a40aa14bc02072a7d0306126dcefce633}} 
\hyperlink{a08764}{Mesh} \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{a08060_ac6ea72d29fc1dc29c81771fcff519fc5}\label{a08060_ac6ea72d29fc1dc29c81771fcff519fc5}} 
Strips {\bfseries strips\+\_\+}
\item 
\mbox{\Hypertarget{a08060_a47d49c113a583ab61dd183ab8eb1b1a0}\label{a08060_a47d49c113a583ab61dd183ab8eb1b1a0}} 
\hyperlink{a08888}{Open\+Mesh\+::\+F\+Prop\+HandleT}$<$ bool $>$ {\bfseries processed\+\_\+}
\item 
\mbox{\Hypertarget{a08060_a813457767fbf40a8a88058625cc1fd8c}\label{a08060_a813457767fbf40a8a88058625cc1fd8c}} 
\hyperlink{a08888}{Open\+Mesh\+::\+F\+Prop\+HandleT}$<$ bool $>$ {\bfseries used\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Strip generation}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a40e8f48348bc8021220d8d346d3c91c5}\label{a08060_a40e8f48348bc8021220d8d346d3c91c5}} 
typedef std\+::vector$<$ typename Mesh\+::\+Face\+Handle $>$ \hyperlink{a08060_a40e8f48348bc8021220d8d346d3c91c5}{Face\+Handles}
\begin{DoxyCompactList}\small\item\em This flag shows if the strips have to be regenerated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a452221aca6ce3fffc0d5900a824919f4}\label{a08060_a452221aca6ce3fffc0d5900a824919f4}} 
bool \hyperlink{a08060_a452221aca6ce3fffc0d5900a824919f4}{strips\+Valid\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag shows if the strips have to be regenerated. \end{DoxyCompactList}\item 
void \hyperlink{a08060_a8a7682389ea16357600e67f84c1eda41}{invalidate\+Strips} ()
\begin{DoxyCompactList}\small\item\em Force a strip update. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_ae1115d9cd19029ffee326064387f428c}\label{a08060_ae1115d9cd19029ffee326064387f428c}} 
void \hyperlink{a08060_ae1115d9cd19029ffee326064387f428c}{build\+Strips} ()
\begin{DoxyCompactList}\small\item\em this method does the main work \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_aca96cc2702244d2cb9a3cd1d4227e410}\label{a08060_aca96cc2702244d2cb9a3cd1d4227e410}} 
void \hyperlink{a08060_aca96cc2702244d2cb9a3cd1d4227e410}{build\+Strips\+Tri\+Mesh} ()
\begin{DoxyCompactList}\small\item\em This method generates strips for triangle meshes. \end{DoxyCompactList}\item 
void \hyperlink{a08060_ab3049b32e5aafae818a6546839e76644}{build\+Strips\+Poly\+Mesh} ()
\item 
void \hyperlink{a08060_a8365de9bf62e5060fe712b7d3faefeaf}{build\+Strip\+Tri\+Mesh} (typename Mesh\+::\+Halfedge\+Handle \+\_\+start\+\_\+hh, \hyperlink{a08052}{Strip} \&\+\_\+strip, \hyperlink{a08060_a40e8f48348bc8021220d8d346d3c91c5}{Face\+Handles} \&\+\_\+faces)
\begin{DoxyCompactList}\small\item\em build a strip from a given halfedge (in both directions) of a triangle mesh \end{DoxyCompactList}\item 
void \hyperlink{a08060_a78cd5748dffaeacc6d4e33aceaf8acdc}{build\+Strip\+Poly\+Mesh} (typename Mesh\+::\+Halfedge\+Handle \+\_\+start\+\_\+hh, \hyperlink{a08052}{Strip} \&\+\_\+strip, \hyperlink{a08060_a40e8f48348bc8021220d8d346d3c91c5}{Face\+Handles} \&\+\_\+faces)
\begin{DoxyCompactList}\small\item\em build a strip from a given halfedge (in both directions) of a polymesh \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Per edge drawing arrays handling}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_ad22d8cdc2ea99453e374973fbe03806f}\label{a08060_ad22d8cdc2ea99453e374973fbe03806f}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $>$ \hyperlink{a08060_ad22d8cdc2ea99453e374973fbe03806f}{per\+Edge\+Vertex\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Per Edge vertex buffer (gl\+Lines) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_addc97c111190da7c048eb866f7501e89}\label{a08060_addc97c111190da7c048eb866f7501e89}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $>$ \hyperlink{a08060_addc97c111190da7c048eb866f7501e89}{per\+Edge\+Color\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Per Edge color buffer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a36cc2b77d42d0e11dc93ffa466b83788}\label{a08060_a36cc2b77d42d0e11dc93ffa466b83788}} 
bool \hyperlink{a08060_a36cc2b77d42d0e11dc93ffa466b83788}{update\+Per\+Edge\+Buffers\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag controls if an update is really necessary. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060_a75e7c17411be91702f86c180553f4f51}{per\+Edge\+Vertex\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per edge vertex buffer \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060_ad9578ddebf4f357297f8c1bf4488f472}{per\+Edge\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per edge color buffer \end{DoxyCompactList}\item 
void \hyperlink{a08060_aab2b2eb928d887e9b4909a13faafa909}{invalidate\+Per\+Edge\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update of the buffers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a51753940387c99f3297150aae548df84}\label{a08060_a51753940387c99f3297150aae548df84}} 
void \hyperlink{a08060_a51753940387c99f3297150aae548df84}{update\+Per\+Edge\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update all per edge drawing buffer n The updated buffers are\+: per edge vertex buffer ( 2 vertices per edge ) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Per halfedge drawing arrays handling}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a6cb051aaabf872b593784197030a7675}\label{a08060_a6cb051aaabf872b593784197030a7675}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $>$ \hyperlink{a08060_a6cb051aaabf872b593784197030a7675}{per\+Halfedge\+Vertex\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Per Edge vertex buffer (gl\+Lines) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_adbd54079a9c63284d68406b80a35e6c1}\label{a08060_adbd54079a9c63284d68406b80a35e6c1}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $>$ \hyperlink{a08060_adbd54079a9c63284d68406b80a35e6c1}{per\+Halfedge\+Color\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Per Edge color buffer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_aefebdf6f6036c889812d8515ca72d4f7}\label{a08060_aefebdf6f6036c889812d8515ca72d4f7}} 
bool \hyperlink{a08060_aefebdf6f6036c889812d8515ca72d4f7}{update\+Per\+Halfedge\+Buffers\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag controls if an update is really necessary. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060_a235fddefca5b085f8e2f73738490a1bf}{per\+Halfedge\+Vertex\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per edge vertex buffer \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060_a5da3e312d3bbfc692f31cfac8b5e84d1}{per\+Halfedge\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per edge color buffer \end{DoxyCompactList}\item 
void \hyperlink{a08060_a5232ce24dc26775bd6e72686785a3d85}{invalidate\+Per\+Halfedge\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update of the buffers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a92bef8131696cb4dc280c115a80bb475}\label{a08060_a92bef8131696cb4dc280c115a80bb475}} 
void \hyperlink{a08060_a92bef8131696cb4dc280c115a80bb475}{update\+Per\+Halfedge\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update all per edge drawing buffer n The updated buffers are\+: per edge vertex buffer ( 2 vertices per edge ) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_ae8d968ba4011dc03321f83c834b1ac1f}\label{a08060_ae8d968ba4011dc03321f83c834b1ac1f}} 
\hyperlink{a08776_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} \hyperlink{a08060_ae8d968ba4011dc03321f83c834b1ac1f}{halfedge\+\_\+point} (const typename Mesh\+::\+Halfedge\+Handle \+\_\+heh)
\begin{DoxyCompactList}\small\item\em compute halfedge point compute visulization point for halfedge (shifted to interior of face) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Per face drawing arrays handling}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a272ea40986a1b0054b61067d5b9b4678}\label{a08060_a272ea40986a1b0054b61067d5b9b4678}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $>$ \hyperlink{a08060_a272ea40986a1b0054b61067d5b9b4678}{per\+Face\+Vertex\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Buffer holding vertices for per face rendering. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a8a5828fdc82294d6075b5c63bd0cc0b3}\label{a08060_a8a5828fdc82294d6075b5c63bd0cc0b3}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $>$ \hyperlink{a08060_a8a5828fdc82294d6075b5c63bd0cc0b3}{per\+Face\+Color\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Buffer holding vertices for per face rendering. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a742499efd74ec3457cdd9a58dd519bf7}\label{a08060_a742499efd74ec3457cdd9a58dd519bf7}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $>$ \hyperlink{a08060_a742499efd74ec3457cdd9a58dd519bf7}{per\+Face\+Normal\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Buffer holding vertices for per face rendering. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a421ba053936d88ca8423e20688e7526c}\label{a08060_a421ba053936d88ca8423e20688e7526c}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $>$ \hyperlink{a08060_a421ba053936d88ca8423e20688e7526c}{per\+Face\+Per\+Vertex\+Normal\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Buffer holding vertices for per face rendering. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_aed2916688091d304330018c922d88a47}\label{a08060_aed2916688091d304330018c922d88a47}} 
bool \hyperlink{a08060_aed2916688091d304330018c922d88a47}{update\+Per\+Face\+Buffers\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag controls if an update is really necessary. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060_a969ec1754b16374ac3a2668ee5881048}{per\+Face\+Vertex\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face vertex buffer \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060_a61bf259a2fa480c42d3261be3d4ac811}{per\+Face\+Normal\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face normal buffer \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060_a37aae1e680fb16b74ba48d2dcd0e70cb}{per\+Face\+Per\+Vertex\+Normal\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face per vertex normal buffer \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060_ab4fe3a43e7a287bd7b341c219ea3298b}{per\+Face\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face color buffer \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_acbeeffb5294ac386ed5e07c8e005e2b9}\label{a08060_acbeeffb5294ac386ed5e07c8e005e2b9}} 
unsigned int \hyperlink{a08060_acbeeffb5294ac386ed5e07c8e005e2b9}{per\+Face\+Vertex\+Buffer\+Size} ()
\begin{DoxyCompactList}\small\item\em Get the number of elements in the face picking buffers. \end{DoxyCompactList}\item 
void \hyperlink{a08060_abdd1b02115c26bb6cc74d0c0f33cab80}{invalidate\+Per\+Face\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update of the buffers. \end{DoxyCompactList}\item 
void \hyperlink{a08060_a2328d2e8720ffc501b51b6002f1e450a}{update\+Per\+Face\+Buffers} ()
\begin{DoxyCompactList}\small\item\em Update all per face buffers. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{vertex picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_affc70ca2a4b2c6aa01b5b682b6186d34}\label{a08060_affc70ca2a4b2c6aa01b5b682b6186d34}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060_affc70ca2a4b2c6aa01b5b682b6186d34}{pick\+Vertex\+Color\+Buf\+\_\+}
\begin{DoxyCompactList}\small\item\em The color buffer used for vertex picking. \end{DoxyCompactList}\item 
void \hyperlink{a08060_a4c8df959871eaffeb30a2217a93ef662}{update\+Picking\+Vertices} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state, uint \+\_\+offset=0)
\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $\ast$ \hyperlink{a08060_a750632249f7aff64a4c56c9e36d58ac2}{pick\+Vertex\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per vertex picking color buffer \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Edge picking functions}
\begin{DoxyCompactItemize}
\item 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060_a653ea1124dd7bc282ecedf1ecba5fb84}{pick\+Edge\+Color\+Buf\+\_\+}
\item 
void \hyperlink{a08060_a2d91f597be04b50c4c840960fa6c0cd7}{update\+Picking\+Edges} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state, uint \+\_\+offset=0)
\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $\ast$ \hyperlink{a08060_accef05474863c4e112ec2baca9703b8a}{pick\+Edge\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per edge picking color buffer \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Face picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08060_a08c860fb5808b22bc0124f952d0b899e}\label{a08060_a08c860fb5808b22bc0124f952d0b899e}} 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060_a08c860fb5808b22bc0124f952d0b899e}{pick\+Face\+Color\+Buf\+\_\+}
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a646cc55f18a749ac94b439886d784a83}\label{a08060_a646cc55f18a749ac94b439886d784a83}} 
void \hyperlink{a08060_a646cc55f18a749ac94b439886d784a83}{update\+Picking\+Faces} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $\ast$ \hyperlink{a08060_a27be99dc4eddbf1f44455cefcec2afd2}{pick\+Face\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face picking color buffer \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_a403786b3a7264535fe7dc351c2bd988f}\label{a08060_a403786b3a7264535fe7dc351c2bd988f}} 
void \hyperlink{a08060_a403786b3a7264535fe7dc351c2bd988f}{update\+Picking\+Faces\+Trimesh} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_ac524442a14978bffd92fc10ee996130a}\label{a08060_ac524442a14978bffd92fc10ee996130a}} 
void \hyperlink{a08060_ac524442a14978bffd92fc10ee996130a}{update\+Picking\+Faces\+Polymesh} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Any picking functions}
\begin{DoxyCompactItemize}
\item 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060_ab4c6c3002d3e1081c5b5bf205b10191a}{pick\+Any\+Color\+Buf\+\_\+}
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\item 
void \hyperlink{a08060_aaeaa8c5a79cab8cfc85137be38aac56e}{update\+Picking\+Any} (\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Call this function to update the color picking array. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $\ast$ \hyperlink{a08060_abb48a176ed0b759bcbd41af7d801b3e6}{pick\+Any\+Color\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the any picking color buffer \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Per face Texture handling}
\begin{DoxyCompactItemize}
\item 
std\+::string \hyperlink{a08060_a3c7a758bca4f76402e15b260e631bd6f}{texture\+Index\+Property\+Name\+\_\+}
\begin{DoxyCompactList}\small\item\em Property for the per face texture index. \end{DoxyCompactList}\item 
std\+::string \hyperlink{a08060_aa610ed8ef2b3dafaff081c5f5d752cda}{per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+}
\begin{DoxyCompactList}\small\item\em Property for the per face texture coordinates. \end{DoxyCompactList}\item 
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec2f} $>$ \hyperlink{a08060_ae58ebfa00fe097b42a1c9ed248724961}{per\+Face\+Texture\+Coord\+Array\+\_\+}
\begin{DoxyCompactList}\small\item\em Property for the per face texture index. \end{DoxyCompactList}\item 
std\+::vector$<$ \hyperlink{a08056}{Texture\+Render\+Info} $>$ \hyperlink{a08060_af31c960ba551b396cd66f2492b306736}{texture\+Render\+Data\+\_\+}
\begin{DoxyCompactList}\small\item\em Property for the per face texture index. \end{DoxyCompactList}\item 
void \hyperlink{a08060_a9aa9ce815ba3fa045c2ecc7832547bf2}{set\+Index\+Property\+Name} (std\+::string \+\_\+index\+Property\+Name)
\begin{DoxyCompactList}\small\item\em set the name of the property used for texture index specification \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08060_ab83703896add51c520c7800ccfa50788}\label{a08060_ab83703896add51c520c7800ccfa50788}} 
const std\+::string \& \hyperlink{a08060_ab83703896add51c520c7800ccfa50788}{index\+Property\+Name} () const
\begin{DoxyCompactList}\small\item\em get the name of the texture index property \end{DoxyCompactList}\item 
void \hyperlink{a08060_a281e923d604e85a169b860b89eb76d12}{set\+Per\+Face\+Texture\+Coordinate\+Property\+Name} (std\+::string \+\_\+per\+Face\+Texture\+Coordinate\+Property\+Name)
\begin{DoxyCompactList}\small\item\em set the name of the property used for texture coordinate \end{DoxyCompactList}\item 
bool \hyperlink{a08060_a713f4bedbb11a94be68b3754e5aa4fd5}{per\+Face\+Texture\+Coordinate\+Available} ()
\begin{DoxyCompactList}\small\item\em Check if per Face \hyperlink{a07344}{Texture} coordinates are available. \end{DoxyCompactList}\item 
bool \hyperlink{a08060_a4a48870352269c73724ca3abce0cd6ba}{per\+Face\+Texture\+Index\+Available} ()
\begin{DoxyCompactList}\small\item\em Check if textureindicies are available. \end{DoxyCompactList}\item 
\hyperlink{a08448}{A\+C\+G\+::\+Vec2f} $\ast$ \hyperlink{a08060_a585d15734bcf6b14dd7c076164a8dc00}{per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer} ()
\begin{DoxyCompactList}\small\item\em get a pointer to the per face per vertex texture coor buffer \end{DoxyCompactList}\item 
std\+::vector$<$ \hyperlink{a08056}{Texture\+Render\+Info} $>$ $\ast$ \hyperlink{a08060_a77a2355751c95fba214eda5b23c58eb0}{texture\+Render\+Data} ()
\begin{DoxyCompactList}\small\item\em get rendering information for texture data \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Mesh$>$\newline
class A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+Processor\+T$<$ Mesh $>$}

This class decomposes a mesh into several strips 

Definition at line 127 of file Strip\+Processor\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08060_a78cd5748dffaeacc6d4e33aceaf8acdc}\label{a08060_a78cd5748dffaeacc6d4e33aceaf8acdc}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!build\+Strip\+Poly\+Mesh@{build\+Strip\+Poly\+Mesh}}
\index{build\+Strip\+Poly\+Mesh@{build\+Strip\+Poly\+Mesh}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{build\+Strip\+Poly\+Mesh()}{buildStripPolyMesh()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::build\+Strip\+Poly\+Mesh (\begin{DoxyParamCaption}\item[{typename Mesh\+::\+Halfedge\+Handle}]{\+\_\+start\+\_\+hh,  }\item[{\hyperlink{a08052}{Strip} \&}]{\+\_\+strip,  }\item[{\hyperlink{a08060_a40e8f48348bc8021220d8d346d3c91c5}{Face\+Handles} \&}]{\+\_\+faces }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



build a strip from a given halfedge (in both directions) of a polymesh 

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a06164__todo000022}{Todo}]Implement texture processing here \end{DoxyRefDesc}


Definition at line 314 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_ab3049b32e5aafae818a6546839e76644}\label{a08060_ab3049b32e5aafae818a6546839e76644}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!build\+Strips\+Poly\+Mesh@{build\+Strips\+Poly\+Mesh}}
\index{build\+Strips\+Poly\+Mesh@{build\+Strips\+Poly\+Mesh}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{build\+Strips\+Poly\+Mesh()}{buildStripsPolyMesh()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::build\+Strips\+Poly\+Mesh (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

This method generates strips for poly\+Meshes meshes

The strips generated in this function are triangle strips. The function takes arbitrary polygons as input and triangulates them. 

Definition at line 190 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a8365de9bf62e5060fe712b7d3faefeaf}\label{a08060_a8365de9bf62e5060fe712b7d3faefeaf}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!build\+Strip\+Tri\+Mesh@{build\+Strip\+Tri\+Mesh}}
\index{build\+Strip\+Tri\+Mesh@{build\+Strip\+Tri\+Mesh}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{build\+Strip\+Tri\+Mesh()}{buildStripTriMesh()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::build\+Strip\+Tri\+Mesh (\begin{DoxyParamCaption}\item[{typename Mesh\+::\+Halfedge\+Handle}]{\+\_\+start\+\_\+hh,  }\item[{\hyperlink{a08052}{Strip} \&}]{\+\_\+strip,  }\item[{\hyperlink{a08060_a40e8f48348bc8021220d8d346d3c91c5}{Face\+Handles} \&}]{\+\_\+faces }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



build a strip from a given halfedge (in both directions) of a triangle mesh 

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a06164__todo000023}{Todo}]Implement texture processing here \end{DoxyRefDesc}


Definition at line 515 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_aab2b2eb928d887e9b4909a13faafa909}\label{a08060_aab2b2eb928d887e9b4909a13faafa909}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!invalidate\+Per\+Edge\+Buffers@{invalidate\+Per\+Edge\+Buffers}}
\index{invalidate\+Per\+Edge\+Buffers@{invalidate\+Per\+Edge\+Buffers}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{invalidate\+Per\+Edge\+Buffers()}{invalidatePerEdgeBuffers()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::invalidate\+Per\+Edge\+Buffers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Update of the buffers. 

This function will set all per edge buffers to invalid and will force an update whe they are requested 

Definition at line 246 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_abdd1b02115c26bb6cc74d0c0f33cab80}\label{a08060_abdd1b02115c26bb6cc74d0c0f33cab80}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!invalidate\+Per\+Face\+Buffers@{invalidate\+Per\+Face\+Buffers}}
\index{invalidate\+Per\+Face\+Buffers@{invalidate\+Per\+Face\+Buffers}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{invalidate\+Per\+Face\+Buffers()}{invalidatePerFaceBuffers()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::invalidate\+Per\+Face\+Buffers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Update of the buffers. 

This function will set all per face buffers to invalid and will force an update whe they are requested 

Definition at line 362 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a5232ce24dc26775bd6e72686785a3d85}\label{a08060_a5232ce24dc26775bd6e72686785a3d85}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!invalidate\+Per\+Halfedge\+Buffers@{invalidate\+Per\+Halfedge\+Buffers}}
\index{invalidate\+Per\+Halfedge\+Buffers@{invalidate\+Per\+Halfedge\+Buffers}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{invalidate\+Per\+Halfedge\+Buffers()}{invalidatePerHalfedgeBuffers()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::invalidate\+Per\+Halfedge\+Buffers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Update of the buffers. 

This function will set all per edge buffers to invalid and will force an update whe they are requested 

Definition at line 289 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a8a7682389ea16357600e67f84c1eda41}\label{a08060_a8a7682389ea16357600e67f84c1eda41}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!invalidate\+Strips@{invalidate\+Strips}}
\index{invalidate\+Strips@{invalidate\+Strips}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{invalidate\+Strips()}{invalidateStrips()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::invalidate\+Strips (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Force a strip update. 



Definition at line 189 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_ad9578ddebf4f357297f8c1bf4488f472}\label{a08060_ad9578ddebf4f357297f8c1bf4488f472}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Edge\+Color\+Buffer@{per\+Edge\+Color\+Buffer}}
\index{per\+Edge\+Color\+Buffer@{per\+Edge\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Edge\+Color\+Buffer()}{perEdgeColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Edge\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per edge color buffer 

This function will return a pointer to the first element of the color buffer. 

Definition at line 792 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a75e7c17411be91702f86c180553f4f51}\label{a08060_a75e7c17411be91702f86c180553f4f51}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Edge\+Vertex\+Buffer@{per\+Edge\+Vertex\+Buffer}}
\index{per\+Edge\+Vertex\+Buffer@{per\+Edge\+Vertex\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Edge\+Vertex\+Buffer()}{perEdgeVertexBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Edge\+Vertex\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per edge vertex buffer 

This function will return a pointer to the first element of the vertex buffer. 

Definition at line 782 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_ab4fe3a43e7a287bd7b341c219ea3298b}\label{a08060_ab4fe3a43e7a287bd7b341c219ea3298b}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Color\+Buffer@{per\+Face\+Color\+Buffer}}
\index{per\+Face\+Color\+Buffer@{per\+Face\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Color\+Buffer()}{perFaceColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per face color buffer 

This function will return a pointer to the first element of the per face color buffer. Use update\+Per\+Face\+Buffers to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. The buffer contains 3 equal normals per face. 

Definition at line 1093 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a61bf259a2fa480c42d3261be3d4ac811}\label{a08060_a61bf259a2fa480c42d3261be3d4ac811}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Normal\+Buffer@{per\+Face\+Normal\+Buffer}}
\index{per\+Face\+Normal\+Buffer@{per\+Face\+Normal\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Normal\+Buffer()}{perFaceNormalBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Normal\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per face normal buffer 

This function will return a pointer to the first element of the per face normal buffer. Use update\+Per\+Face\+Buffers to update the buffer before you render it via \hyperlink{a07884_af7d99f0a0f1c806b98aece1af097b9f7}{A\+C\+G\+::\+G\+L\+State\+::normal\+Pointer}. The buffer contains 3 equal normals per face. 

Definition at line 1071 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a37aae1e680fb16b74ba48d2dcd0e70cb}\label{a08060_a37aae1e680fb16b74ba48d2dcd0e70cb}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Per\+Vertex\+Normal\+Buffer@{per\+Face\+Per\+Vertex\+Normal\+Buffer}}
\index{per\+Face\+Per\+Vertex\+Normal\+Buffer@{per\+Face\+Per\+Vertex\+Normal\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Per\+Vertex\+Normal\+Buffer()}{perFacePerVertexNormalBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Per\+Vertex\+Normal\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per face per vertex normal buffer 

This function will return a pointer to the first element of the per face per vertex normal buffer. Use update\+Per\+Face\+Buffers to update the buffer before you render it via \hyperlink{a07884_af7d99f0a0f1c806b98aece1af097b9f7}{A\+C\+G\+::\+G\+L\+State\+::normal\+Pointer}. The buffer contains 3 equal normals per face. 

Definition at line 1082 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a585d15734bcf6b14dd7c076164a8dc00}\label{a08060_a585d15734bcf6b14dd7c076164a8dc00}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer@{per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer}}
\index{per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer@{per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer()}{perFacePerVertexTextureCoordBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec2f}$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Per\+Vertex\+Texture\+Coord\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get a pointer to the per face per vertex texture coor buffer 

This function will return a pointer to the first element of the buffer. 

Definition at line 543 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a713f4bedbb11a94be68b3754e5aa4fd5}\label{a08060_a713f4bedbb11a94be68b3754e5aa4fd5}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Texture\+Coordinate\+Available@{per\+Face\+Texture\+Coordinate\+Available}}
\index{per\+Face\+Texture\+Coordinate\+Available@{per\+Face\+Texture\+Coordinate\+Available}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Texture\+Coordinate\+Available()}{perFaceTextureCoordinateAvailable()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Texture\+Coordinate\+Available (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Check if per Face \hyperlink{a07344}{Texture} coordinates are available. 

If this function returns true, a per face per vertex texture array is available 

Definition at line 1122 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a4a48870352269c73724ca3abce0cd6ba}\label{a08060_a4a48870352269c73724ca3abce0cd6ba}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Texture\+Index\+Available@{per\+Face\+Texture\+Index\+Available}}
\index{per\+Face\+Texture\+Index\+Available@{per\+Face\+Texture\+Index\+Available}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Texture\+Index\+Available()}{perFaceTextureIndexAvailable()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
bool \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Texture\+Index\+Available (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Check if textureindicies are available. 

If this function returns true, the strip processor will respect textures during strip generation. Each returned strip has than an index that has to be used as a texture index during strip rendering. 

Definition at line 1137 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a969ec1754b16374ac3a2668ee5881048}\label{a08060_a969ec1754b16374ac3a2668ee5881048}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Vertex\+Buffer@{per\+Face\+Vertex\+Buffer}}
\index{per\+Face\+Vertex\+Buffer@{per\+Face\+Vertex\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Vertex\+Buffer()}{perFaceVertexBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Vertex\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per face vertex buffer 

This function will return a pointer to the first element of the per face vertex buffer. Use update\+Per\+Face\+Buffers to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. 

Definition at line 1059 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a5da3e312d3bbfc692f31cfac8b5e84d1}\label{a08060_a5da3e312d3bbfc692f31cfac8b5e84d1}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Halfedge\+Color\+Buffer@{per\+Halfedge\+Color\+Buffer}}
\index{per\+Halfedge\+Color\+Buffer@{per\+Halfedge\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Halfedge\+Color\+Buffer()}{perHalfedgeColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Halfedge\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per edge color buffer 

This function will return a pointer to the first element of the color buffer. 

Definition at line 878 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a235fddefca5b085f8e2f73738490a1bf}\label{a08060_a235fddefca5b085f8e2f73738490a1bf}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Halfedge\+Vertex\+Buffer@{per\+Halfedge\+Vertex\+Buffer}}
\index{per\+Halfedge\+Vertex\+Buffer@{per\+Halfedge\+Vertex\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Halfedge\+Vertex\+Buffer()}{perHalfedgeVertexBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec3f} $\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Halfedge\+Vertex\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



get a pointer to the per edge vertex buffer 

This function will return a pointer to the first element of the vertex buffer. 

Definition at line 868 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_abb48a176ed0b759bcbd41af7d801b3e6}\label{a08060_abb48a176ed0b759bcbd41af7d801b3e6}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Any\+Color\+Buffer@{pick\+Any\+Color\+Buffer}}
\index{pick\+Any\+Color\+Buffer@{pick\+Any\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Any\+Color\+Buffer()}{pickAnyColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc}$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Any\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get a pointer to the any picking color buffer 

This function will return a pointer to the first element of the picking buffer. Use update\+Picking\+Any to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. 

Definition at line 493 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_accef05474863c4e112ec2baca9703b8a}\label{a08060_accef05474863c4e112ec2baca9703b8a}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Edge\+Color\+Buffer@{pick\+Edge\+Color\+Buffer}}
\index{pick\+Edge\+Color\+Buffer@{pick\+Edge\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Edge\+Color\+Buffer()}{pickEdgeColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc}$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Edge\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get a pointer to the per edge picking color buffer 

This function will return a pointer to the first element of the picking buffer. Use update\+Picking\+Edges to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. 

Definition at line 430 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a27be99dc4eddbf1f44455cefcec2afd2}\label{a08060_a27be99dc4eddbf1f44455cefcec2afd2}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Face\+Color\+Buffer@{pick\+Face\+Color\+Buffer}}
\index{pick\+Face\+Color\+Buffer@{pick\+Face\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Face\+Color\+Buffer()}{pickFaceColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc}$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Face\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get a pointer to the per face picking color buffer 

This function will return a pointer to the first element of the picking buffer. Use update\+Picking\+Faces to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. 

Definition at line 457 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a750632249f7aff64a4c56c9e36d58ac2}\label{a08060_a750632249f7aff64a4c56c9e36d58ac2}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Vertex\+Color\+Buffer@{pick\+Vertex\+Color\+Buffer}}
\index{pick\+Vertex\+Color\+Buffer@{pick\+Vertex\+Color\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Vertex\+Color\+Buffer()}{pickVertexColorBuffer()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{a08448}{A\+C\+G\+::\+Vec4uc}$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Vertex\+Color\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get a pointer to the per vertex picking color buffer 

This function will return a pointer to the first element of the picking buffer. Use update\+Picking\+Vertices to update the buffer before you render it via \hyperlink{a07884_a612e75430dee760775291af4dbdeb153}{A\+C\+G\+::\+G\+L\+State\+::color\+Pointer}. 

Definition at line 401 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a9aa9ce815ba3fa045c2ecc7832547bf2}\label{a08060_a9aa9ce815ba3fa045c2ecc7832547bf2}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!set\+Index\+Property\+Name@{set\+Index\+Property\+Name}}
\index{set\+Index\+Property\+Name@{set\+Index\+Property\+Name}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{set\+Index\+Property\+Name()}{setIndexPropertyName()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::set\+Index\+Property\+Name (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+index\+Property\+Name }\end{DoxyParamCaption})}



set the name of the property used for texture index specification 

The given property name will define a texture index. The strip processor checks this property and generates strips which contain only the same index. If the property is not found, strips will be independend of this property 

Definition at line 1152 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a281e923d604e85a169b860b89eb76d12}\label{a08060_a281e923d604e85a169b860b89eb76d12}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!set\+Per\+Face\+Texture\+Coordinate\+Property\+Name@{set\+Per\+Face\+Texture\+Coordinate\+Property\+Name}}
\index{set\+Per\+Face\+Texture\+Coordinate\+Property\+Name@{set\+Per\+Face\+Texture\+Coordinate\+Property\+Name}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{set\+Per\+Face\+Texture\+Coordinate\+Property\+Name()}{setPerFaceTextureCoordinatePropertyName()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::set\+Per\+Face\+Texture\+Coordinate\+Property\+Name (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+per\+Face\+Texture\+Coordinate\+Property\+Name }\end{DoxyParamCaption})}



set the name of the property used for texture coordinate 

The given property name will define per face \hyperlink{a07344}{Texture} coordinates. This property has to be a halfedge property. The coordinate on each edge is the texture coordinate of the to vertex. If this property is not available, textures will not be processed by the strip processor. 

Definition at line 1104 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a77a2355751c95fba214eda5b23c58eb0}\label{a08060_a77a2355751c95fba214eda5b23c58eb0}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!texture\+Render\+Data@{texture\+Render\+Data}}
\index{texture\+Render\+Data@{texture\+Render\+Data}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{texture\+Render\+Data()}{textureRenderData()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::vector$<$ \hyperlink{a08056}{Texture\+Render\+Info} $>$$\ast$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::texture\+Render\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get rendering information for texture data 

This function returns a pointer to the texture render data produced by the stripprocessor each pair defines a texture index and te number of faces which have to be rendered for this texture before switching to the next one. 

Definition at line 552 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a2328d2e8720ffc501b51b6002f1e450a}\label{a08060_a2328d2e8720ffc501b51b6002f1e450a}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!update\+Per\+Face\+Buffers@{update\+Per\+Face\+Buffers}}
\index{update\+Per\+Face\+Buffers@{update\+Per\+Face\+Buffers}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{update\+Per\+Face\+Buffers()}{updatePerFaceBuffers()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::update\+Per\+Face\+Buffers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Update all per face buffers. 

The updated buffers are\+: per face vertex buffer, per face normal buffer (3 equal normals per face), per face color buffer (3 equal colors per face) 

Definition at line 888 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_aaeaa8c5a79cab8cfc85137be38aac56e}\label{a08060_aaeaa8c5a79cab8cfc85137be38aac56e}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!update\+Picking\+Any@{update\+Picking\+Any}}
\index{update\+Picking\+Any@{update\+Picking\+Any}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{update\+Picking\+Any()}{updatePickingAny()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::update\+Picking\+Any (\begin{DoxyParamCaption}\item[{\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&}]{\+\_\+state }\end{DoxyParamCaption})}



Call this function to update the color picking array. 

This function calls the update\+Picking\+Vertices, update\+Picking\+Edges, update\+Picking\+Vertices functions with an appropriate offset so that the standard arrays will be updated. 

Definition at line 734 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a2d91f597be04b50c4c840960fa6c0cd7}\label{a08060_a2d91f597be04b50c4c840960fa6c0cd7}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!update\+Picking\+Edges@{update\+Picking\+Edges}}
\index{update\+Picking\+Edges@{update\+Picking\+Edges}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{update\+Picking\+Edges()}{updatePickingEdges()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::update\+Picking\+Edges (\begin{DoxyParamCaption}\item[{\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&}]{\+\_\+state,  }\item[{uint}]{\+\_\+offset = {\ttfamily 0} }\end{DoxyParamCaption})}

Call this function to update the color picking array The \+\_\+offsett value can be used to shift the color in the resulting arrays. pick Any uses the offset to generate arrays for picking everything. 

Definition at line 665 of file Strip\+Processor\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08060_a4c8df959871eaffeb30a2217a93ef662}\label{a08060_a4c8df959871eaffeb30a2217a93ef662}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!update\+Picking\+Vertices@{update\+Picking\+Vertices}}
\index{update\+Picking\+Vertices@{update\+Picking\+Vertices}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{update\+Picking\+Vertices()}{updatePickingVertices()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::update\+Picking\+Vertices (\begin{DoxyParamCaption}\item[{\hyperlink{a07884}{A\+C\+G\+::\+G\+L\+State} \&}]{\+\_\+state,  }\item[{uint}]{\+\_\+offset = {\ttfamily 0} }\end{DoxyParamCaption})}

Call this function to update the color picking array The \+\_\+offsett value can be used to shift the color in the resulting arrays. pick Any uses the offset to generate arrays for picking everything. 

Definition at line 649 of file Strip\+Processor\+T\+\_\+impl.\+hh.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{a08060_ae58ebfa00fe097b42a1c9ed248724961}\label{a08060_ae58ebfa00fe097b42a1c9ed248724961}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Texture\+Coord\+Array\+\_\+@{per\+Face\+Texture\+Coord\+Array\+\_\+}}
\index{per\+Face\+Texture\+Coord\+Array\+\_\+@{per\+Face\+Texture\+Coord\+Array\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Texture\+Coord\+Array\+\_\+}{perFaceTextureCoordArray\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec2f} $>$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Texture\+Coord\+Array\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Property for the per face texture index. 

This property is used by the mesh for texture index specification. If this is invalid, then it is assumed that there is one or no active texture. This means that the generated strips will be independent of texture information. 

Definition at line 572 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_aa610ed8ef2b3dafaff081c5f5d752cda}\label{a08060_aa610ed8ef2b3dafaff081c5f5d752cda}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+@{per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+}}
\index{per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+@{per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+}{perFaceTextureCoordinatePropertyName\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::string \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::per\+Face\+Texture\+Coordinate\+Property\+Name\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Property for the per face texture coordinates. 

This property is used by the mesh for texture coordinate specification. If this is invalid, then the strip processor will ignore per face textures during processing. 

Definition at line 570 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_ab4c6c3002d3e1081c5b5bf205b10191a}\label{a08060_ab4c6c3002d3e1081c5b5bf205b10191a}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Any\+Color\+Buf\+\_\+@{pick\+Any\+Color\+Buf\+\_\+}}
\index{pick\+Any\+Color\+Buf\+\_\+@{pick\+Any\+Color\+Buf\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Any\+Color\+Buf\+\_\+}{pickAnyColorBuf\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Any\+Color\+Buf\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Call this function to update the color picking array. 

This function calls the update\+Picking\+Vertices, update\+Picking\+Edges, update\+Picking\+Vertices functions with an appropriate offset so that the standard arrays will be updated. 

Definition at line 493 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a653ea1124dd7bc282ecedf1ecba5fb84}\label{a08060_a653ea1124dd7bc282ecedf1ecba5fb84}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!pick\+Edge\+Color\+Buf\+\_\+@{pick\+Edge\+Color\+Buf\+\_\+}}
\index{pick\+Edge\+Color\+Buf\+\_\+@{pick\+Edge\+Color\+Buf\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{pick\+Edge\+Color\+Buf\+\_\+}{pickEdgeColorBuf\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::vector$<$ \hyperlink{a08448}{A\+C\+G\+::\+Vec4uc} $>$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::pick\+Edge\+Color\+Buf\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

Call this function to update the color picking array The \+\_\+offsett value can be used to shift the color in the resulting arrays. pick Any uses the offset to generate arrays for picking everything. 

Definition at line 430 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_a3c7a758bca4f76402e15b260e631bd6f}\label{a08060_a3c7a758bca4f76402e15b260e631bd6f}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!texture\+Index\+Property\+Name\+\_\+@{texture\+Index\+Property\+Name\+\_\+}}
\index{texture\+Index\+Property\+Name\+\_\+@{texture\+Index\+Property\+Name\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{texture\+Index\+Property\+Name\+\_\+}{textureIndexPropertyName\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::string \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::texture\+Index\+Property\+Name\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Property for the per face texture index. 

This property is used by the mesh for texture index specification. If this is invalid, then it is assumed that there is one or no active texture. This means that the generated strips will be independent of texture information. 

Definition at line 552 of file Strip\+Processor\+T.\+hh.

\mbox{\Hypertarget{a08060_af31c960ba551b396cd66f2492b306736}\label{a08060_af31c960ba551b396cd66f2492b306736}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}!texture\+Render\+Data\+\_\+@{texture\+Render\+Data\+\_\+}}
\index{texture\+Render\+Data\+\_\+@{texture\+Render\+Data\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT@{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}}
\subsubsection{\texorpdfstring{texture\+Render\+Data\+\_\+}{textureRenderData\_}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
std\+::vector$<$ \hyperlink{a08056}{Texture\+Render\+Info} $>$ \hyperlink{a08060}{A\+C\+G\+::\+Scene\+Graph\+::\+Strip\+ProcessorT}$<$ \hyperlink{a08764}{Mesh} $>$\+::texture\+Render\+Data\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Property for the per face texture index. 

This property is used by the mesh for texture index specification. If this is invalid, then it is assumed that there is one or no active texture. This means that the generated strips will be independent of texture information. 

Definition at line 574 of file Strip\+Processor\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Strip\+Processor\+T.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Strip\+Processor\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
