\hypertarget{classACG_1_1SceneGraph_1_1OBJNode}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:O\+B\+J\+Node Class Reference}
\label{classACG_1_1SceneGraph_1_1OBJNode}\index{A\+C\+G\+::\+Scene\+Graph\+::\+O\+B\+J\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+O\+B\+J\+Node}}
Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:O\+B\+J\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classACG_1_1SceneGraph_1_1OBJNode}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structACG_1_1SceneGraph_1_1OBJNode_1_1Face}{Face}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_aa960e929daafb4a3ff69ebbd19c481b8}\label{classACG_1_1SceneGraph_1_1OBJNode_aa960e929daafb4a3ff69ebbd19c481b8}} 
\hyperlink{classACG_1_1SceneGraph_1_1OBJNode_aa960e929daafb4a3ff69ebbd19c481b8}{O\+B\+J\+Node} (\hyperlink{classACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$O\+B\+J\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_ae8a8bda724ea408815dfd859cd0d44bb}\label{classACG_1_1SceneGraph_1_1OBJNode_ae8a8bda724ea408815dfd859cd0d44bb}} 
virtual \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_ae8a8bda724ea408815dfd859cd0d44bb}{$\sim$\+O\+B\+J\+Node} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a0233c54aa0018ae63efd426db6c1ebcc}\label{classACG_1_1SceneGraph_1_1OBJNode_a0233c54aa0018ae63efd426db6c1ebcc}} 
{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{classACG_1_1SceneGraph_1_1OBJNode}{O\+B\+J\+Node})
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a3e252ae9ab89598b77d6dffc10e4ed0d}\label{classACG_1_1SceneGraph_1_1OBJNode_a3e252ae9ab89598b77d6dffc10e4ed0d}} 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a3e252ae9ab89598b77d6dffc10e4ed0d}{available\+Draw\+Modes} () const override
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a4eada23bf988c77a45b811784fda2a1d}\label{classACG_1_1SceneGraph_1_1OBJNode_a4eada23bf988c77a45b811784fda2a1d}} 
void \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a4eada23bf988c77a45b811784fda2a1d}{bounding\+Box} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max) override
\begin{DoxyCompactList}\small\item\em update bounding box \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a3ed87863665f0dd7b1098b88ac39951d}\label{classACG_1_1SceneGraph_1_1OBJNode_a3ed87863665f0dd7b1098b88ac39951d}} 
void \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a3ed87863665f0dd7b1098b88ac39951d}{draw} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em drawing the primitive \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a83d43e8a3c3bb24335a31762b0ddbc0c}\label{classACG_1_1SceneGraph_1_1OBJNode_a83d43e8a3c3bb24335a31762b0ddbc0c}} 
void \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a83d43e8a3c3bb24335a31762b0ddbc0c}{pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target) override
\begin{DoxyCompactList}\small\item\em picking \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a03e22a8c2e92a1c3f60ab89587f09960}\label{classACG_1_1SceneGraph_1_1OBJNode_a03e22a8c2e92a1c3f60ab89587f09960}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a03e22a8c2e92a1c3f60ab89587f09960}{n\+\_\+vertices} () const
\begin{DoxyCompactList}\small\item\em number of vertices \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_af11d6a4d224a6a1453b5f10d86e41c71}\label{classACG_1_1SceneGraph_1_1OBJNode_af11d6a4d224a6a1453b5f10d86e41c71}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_af11d6a4d224a6a1453b5f10d86e41c71}{n\+\_\+faces} () const
\begin{DoxyCompactList}\small\item\em number of faces \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a2018228c9bab918b7d18ef9e6471ad39}\label{classACG_1_1SceneGraph_1_1OBJNode_a2018228c9bab918b7d18ef9e6471ad39}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a2018228c9bab918b7d18ef9e6471ad39}{n\+\_\+normals} () const
\begin{DoxyCompactList}\small\item\em number of normals \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a6b9682202bdfc454cb49a88203c31358}\label{classACG_1_1SceneGraph_1_1OBJNode_a6b9682202bdfc454cb49a88203c31358}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a6b9682202bdfc454cb49a88203c31358}{n\+\_\+texcoords} () const
\begin{DoxyCompactList}\small\item\em number of texcoords \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a5eaef05e59762299b41d7e5b9154f4ec}\label{classACG_1_1SceneGraph_1_1OBJNode_a5eaef05e59762299b41d7e5b9154f4ec}} 
void \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a5eaef05e59762299b41d7e5b9154f4ec}{clear} ()
\begin{DoxyCompactList}\small\item\em clear the node \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a691394305a3e6f7030b4109c4404792b}\label{classACG_1_1SceneGraph_1_1OBJNode_a691394305a3e6f7030b4109c4404792b}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a691394305a3e6f7030b4109c4404792b}{add\+\_\+vertex} (const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+v)
\begin{DoxyCompactList}\small\item\em add vertex \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a71e5cfffc6a9ee9f4a012462df7104df}\label{classACG_1_1SceneGraph_1_1OBJNode_a71e5cfffc6a9ee9f4a012462df7104df}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a71e5cfffc6a9ee9f4a012462df7104df}{add\+\_\+face} (const \hyperlink{structACG_1_1SceneGraph_1_1OBJNode_1_1Face}{Face} \&\+\_\+f)
\begin{DoxyCompactList}\small\item\em add triangle \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a5508e27eb5677e69a2ca1dbd0e846206}\label{classACG_1_1SceneGraph_1_1OBJNode_a5508e27eb5677e69a2ca1dbd0e846206}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a5508e27eb5677e69a2ca1dbd0e846206}{add\+\_\+face} (unsigned int \+\_\+i0, unsigned int \+\_\+i1, unsigned int \+\_\+i2)
\begin{DoxyCompactList}\small\item\em add triangle \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_ab141f84f3c105d8fbcaa3c57d0d2f283}\label{classACG_1_1SceneGraph_1_1OBJNode_ab141f84f3c105d8fbcaa3c57d0d2f283}} 
\hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_ab141f84f3c105d8fbcaa3c57d0d2f283}{vertex} (unsigned int \+\_\+i)
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th vertex \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a805b9fd40039329bd7ff87ed95494173}\label{classACG_1_1SceneGraph_1_1OBJNode_a805b9fd40039329bd7ff87ed95494173}} 
const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a805b9fd40039329bd7ff87ed95494173}{vertex} (unsigned int \+\_\+i) const
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th vertex \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_ad677679ee1596a642d75c8becf54aec1}\label{classACG_1_1SceneGraph_1_1OBJNode_ad677679ee1596a642d75c8becf54aec1}} 
const \hyperlink{structACG_1_1SceneGraph_1_1OBJNode_1_1Face}{Face} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_ad677679ee1596a642d75c8becf54aec1}{face} (unsigned int \+\_\+i) const
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th face \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a84b66e3adaac1d0693292e0d560d9d42}\label{classACG_1_1SceneGraph_1_1OBJNode_a84b66e3adaac1d0693292e0d560d9d42}} 
\hyperlink{structACG_1_1SceneGraph_1_1OBJNode_1_1Face}{Face} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a84b66e3adaac1d0693292e0d560d9d42}{face} (unsigned int \+\_\+i)
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th face \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a844ded691a01616ffd1a3ec7a0d2d321}\label{classACG_1_1SceneGraph_1_1OBJNode_a844ded691a01616ffd1a3ec7a0d2d321}} 
const \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a844ded691a01616ffd1a3ec7a0d2d321}{normal} (unsigned int \+\_\+i) const
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th normal \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a9bf16ee2fbcad793856a98441d666595}\label{classACG_1_1SceneGraph_1_1OBJNode_a9bf16ee2fbcad793856a98441d666595}} 
\hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \& \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a9bf16ee2fbcad793856a98441d666595}{normal} (unsigned int \+\_\+i)
\begin{DoxyCompactList}\small\item\em get i\textquotesingle{}th normal \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a22f9f1304423c292a3b13c0430c8014d}\label{classACG_1_1SceneGraph_1_1OBJNode_a22f9f1304423c292a3b13c0430c8014d}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a22f9f1304423c292a3b13c0430c8014d}{read} (const std\+::string \&\+\_\+filename)
\begin{DoxyCompactList}\small\item\em Read from file. Implemented using \hyperlink{namespaceOpenMesh}{Open\+Mesh} loader and O\+B\+J\+Node\+Exporter. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a944cfc83898214dc6493ae5a0526fa3d}\label{classACG_1_1SceneGraph_1_1OBJNode_a944cfc83898214dc6493ae5a0526fa3d}} 
void \hyperlink{classACG_1_1SceneGraph_1_1OBJNode_a944cfc83898214dc6493ae5a0526fa3d}{update\+\_\+face\+\_\+normals} ()
\begin{DoxyCompactList}\small\item\em Update face normals. Call when geometry changes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a940ec0ec266a3b8367b7eba6a35483f3}\label{classACG_1_1SceneGraph_1_1OBJNode_a940ec0ec266a3b8367b7eba6a35483f3}} 
void {\bfseries draw\+\_\+obj} () const
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a8bcab81eae5f780219c62fd63c373582}\label{classACG_1_1SceneGraph_1_1OBJNode_a8bcab81eae5f780219c62fd63c373582}} 
void {\bfseries draw\+\_\+obj\+\_\+tex} () const
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a74976b2c791d2a8ff78d0a0999ec868c}\label{classACG_1_1SceneGraph_1_1OBJNode_a74976b2c791d2a8ff78d0a0999ec868c}} 
std\+::vector$<$ \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $>$ {\bfseries vertices\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_a7e0054072b719770e06338c155938354}\label{classACG_1_1SceneGraph_1_1OBJNode_a7e0054072b719770e06338c155938354}} 
std\+::vector$<$ \hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $>$ {\bfseries normals\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_acccfa1ddb94f371a4d70a88e0cc43d91}\label{classACG_1_1SceneGraph_1_1OBJNode_acccfa1ddb94f371a4d70a88e0cc43d91}} 
std\+::vector$<$ \hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{Vec2f} $>$ {\bfseries tex\+Coords\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1OBJNode_af57eba655b5836cf61e5c8ab32443fb7}\label{classACG_1_1SceneGraph_1_1OBJNode_af57eba655b5836cf61e5c8ab32443fb7}} 
std\+::vector$<$ \hyperlink{structACG_1_1SceneGraph_1_1OBJNode_1_1Face}{Face} $>$ {\bfseries faces\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}


Definition at line 79 of file O\+B\+J\+Node.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/O\+B\+J\+Node.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/O\+B\+J\+Node.\+cc\end{DoxyCompactItemize}
