\hypertarget{classMeshObject}{}\section{Mesh\+Object$<$ MeshT $>$ Class Template Reference}
\label{classMeshObject}\index{Mesh\+Object$<$ Mesh\+T $>$@{Mesh\+Object$<$ Mesh\+T $>$}}


{\ttfamily \#include $<$Type-\/\+Open\+Mesh/\+Object\+Types/\+Mesh\+Object/\+Mesh\+Object\+T.\+hh$>$}

Inheritance diagram for Mesh\+Object$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classMeshObject}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMeshObject_a711b99e933187326cbc1a71fe6cade14}{Mesh\+Object} (const \hyperlink{classMeshObject}{Mesh\+Object} \&\+\_\+object)
\begin{DoxyCompactList}\small\item\em copy constructor \end{DoxyCompactList}\item 
\hyperlink{classMeshObject_a1154b2d1d75a96e3c846eec0781202e5}{Mesh\+Object} (\hyperlink{classDataType}{Data\+Type} \+\_\+type\+Id)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{classMeshObject_a2d28e11ef81da8e6b6c021eba461b291}{$\sim$\+Mesh\+Object} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
virtual void \hyperlink{classMeshObject_a8379b3522022edc2403bf0e5b5f91b96}{cleanup} ()
\begin{DoxyCompactList}\small\item\em Reset current object, including all related nodes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Name and Path handling}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classMeshObject_aaa1423e2a0d37abc9c3d0ad677713d6c}{set\+Name} (Q\+String \+\_\+name)
\begin{DoxyCompactList}\small\item\em Set the name of the Object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Load/\+Save}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classMeshObject_acf2bbccb615c5d77d12d297ecf729ac7}{load\+Mesh} (Q\+String \+\_\+filename)
\begin{DoxyCompactList}\small\item\em Load a mesh from the given file. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Object Information}\par
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{classMeshObject_a16d9d1d66d53f4dedda4718a3ae172f4}{get\+Objectinfo} ()
\begin{DoxyCompactList}\small\item\em Get all Info for the Object as a string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Picking}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classMeshObject_ad3aeeddb501a9c03127f67dcd92bea48}{picked} (uint \+\_\+node\+\_\+idx)
\begin{DoxyCompactList}\small\item\em detect if the node has been picked \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a7b664cb8b06570a34c7edddd98850b61}\label{classMeshObject_a7b664cb8b06570a34c7edddd98850b61}} 
void \hyperlink{classMeshObject_a7b664cb8b06570a34c7edddd98850b61}{enable\+Picking} (bool \+\_\+enable)
\begin{DoxyCompactList}\small\item\em Enable or disable picking for this Node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a4e139439594c14383a1383a5e1ba4831}\label{classMeshObject_a4e139439594c14383a1383a5e1ba4831}} 
bool \hyperlink{classMeshObject_a4e139439594c14383a1383a5e1ba4831}{picking\+Enabled} ()
\begin{DoxyCompactList}\small\item\em Check if picking is enabled for this Node. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classMeshObject_af3eebb491cdf932514a59254c83cc30f}{init} (MeshT $\ast$\+\_\+mesh=0)
\begin{DoxyCompactList}\small\item\em Initialise current object, including all related nodes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Update handling}\par
{\em This is mostly private. Updates have to be triggered via emit updated\+Object() }\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classMeshObject_ab519ebaadf7fe0bf49b4fb15a5a048a2}{update} (\hyperlink{classUpdateType}{Update\+Type} \+\_\+type=\hyperlink{group__DefaultUpdateTypes_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+LL})
\begin{DoxyCompactList}\small\item\em Update the whole Object (Selection,Topology,...) \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a2ed07ca53b44a480535be7d048340f9f}{update\+Selection} ()
\begin{DoxyCompactList}\small\item\em Call this function to update the modeling regions. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_aba8c1dab1b6f8a0caa3e3eceba9ebcf1}{update\+Modeling\+Regions} ()
\begin{DoxyCompactList}\small\item\em Call this function to update the modeling regions. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_ab8d0a1d6138ef3aabdee7b1c0214f105}{update\+Features} ()
\begin{DoxyCompactList}\small\item\em Update Feature Visualization Node. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a5234c57224d49f3499adfdc8b570809f}{update\+Geometry} ()
\begin{DoxyCompactList}\small\item\em Update Geometry of all data structures. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a97a5a00b7640c9da25c783cd9c6d7c18}{update\+Color} ()
\begin{DoxyCompactList}\small\item\em Update Colors of all data structures. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_aefc7f44327fa3bc8dc0e318b81f4242a}{update\+Topology} ()
\begin{DoxyCompactList}\small\item\em Update Topology of all data structures. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a18c857740736f55836c80a077be3b7b3}{update\+Texture} ()
\begin{DoxyCompactList}\small\item\em Update \hyperlink{classTexture}{Texture} of all data structures. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshObject_a05054284bf298df4cfe3632f952f82a6}\label{classMeshObject_a05054284bf298df4cfe3632f952f82a6}} 
class {\bfseries Type\+Poly\+Mesh\+Plugin}
\item 
\mbox{\Hypertarget{classMeshObject_a4a95b7f50fd359c478cc320257668895}\label{classMeshObject_a4a95b7f50fd359c478cc320257668895}} 
class {\bfseries Type\+Triangle\+Mesh\+Plugin}
\end{DoxyCompactItemize}
\subsection*{Content}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshObject_a1eee4dadae480d81a375e25f9b1f6041}\label{classMeshObject_a1eee4dadae480d81a375e25f9b1f6041}} 
MeshT $\ast$ \hyperlink{classMeshObject_a1eee4dadae480d81a375e25f9b1f6041}{mesh\+\_\+}
\begin{DoxyCompactList}\small\item\em pointer to the mesh \end{DoxyCompactList}\item 
MeshT $\ast$ \hyperlink{classMeshObject_a6c0369a82054030a178e0dd565739ccd}{mesh} ()
\begin{DoxyCompactList}\small\item\em return a pointer to the mesh \end{DoxyCompactList}\item 
const MeshT $\ast$ \hyperlink{classMeshObject_a1e0e1024578e8457a7f67d4a8af2af11}{mesh} () const
\begin{DoxyCompactList}\small\item\em return a const pointer to the mesh \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Visualization}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshObject_ad31ef585a9056cb742e23bb1f77360a6}\label{classMeshObject_ad31ef585a9056cb742e23bb1f77360a6}} 
\hyperlink{classACG_1_1SceneGraph_1_1SelectionNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Selection\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject_ad31ef585a9056cb742e23bb1f77360a6}{status\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Status Node for a mesh, visualizing the selection state of a mesh. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_aa6d962b928b81b4d42ac62fa292981a3}\label{classMeshObject_aa6d962b928b81b4d42ac62fa292981a3}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structAreaNodeMod}{Area\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_aa6d962b928b81b4d42ac62fa292981a3}{area\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Area selection Vis. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a32b586c751f47bb19ba9005e3470d5b8}\label{classMeshObject_a32b586c751f47bb19ba9005e3470d5b8}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structHandleNodeMod}{Handle\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_a32b586c751f47bb19ba9005e3470d5b8}{handle\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Handle selection Vis. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a28fef75f28758c9fd8d5e5b45b99514d}\label{classMeshObject_a28fef75f28758c9fd8d5e5b45b99514d}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structFeatureNodeMod}{Feature\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_a28fef75f28758c9fd8d5e5b45b99514d}{feature\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Feature selection Vis. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a1aa8945b220407d3752030cc0430c55d}\label{classMeshObject_a1aa8945b220407d3752030cc0430c55d}} 
\hyperlink{classACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject_a1aa8945b220407d3752030cc0430c55d}{mesh\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Scenegraph Mesh Node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_adf9e7a49e593102228b08eaea7a55a9f}\label{classMeshObject_adf9e7a49e593102228b08eaea7a55a9f}} 
\hyperlink{classACG_1_1SceneGraph_1_1EnvMapNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Env\+Map\+Node} $\ast$ \hyperlink{classMeshObject_adf9e7a49e593102228b08eaea7a55a9f}{texture\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Scenegraph Texture\+Node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a5d7a4656bd04826ed36c422f88f10101}\label{classMeshObject_a5d7a4656bd04826ed36c422f88f10101}} 
\hyperlink{classACG_1_1SceneGraph_1_1ShaderNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node} $\ast$ \hyperlink{classMeshObject_a5d7a4656bd04826ed36c422f88f10101}{shader\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Scenegraph Shader\+Node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a4cd1a6b4e93f7b276fcb30f8a15254b7}\label{classMeshObject_a4cd1a6b4e93f7b276fcb30f8a15254b7}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusViewNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+View\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject_a4cd1a6b4e93f7b276fcb30f8a15254b7}{status\+View\+\_\+}
\begin{DoxyCompactList}\small\item\em Scenegraph Status\+Node\+View. \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1EnvMapNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Env\+Map\+Node} $\ast$ \hyperlink{classMeshObject_a9e7f52dd3565a0efd8121cad9544e46c}{texture\+Node} ()
\begin{DoxyCompactList}\small\item\em Get the Texture\+Node of the current mesh. \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1ShaderNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node} $\ast$ \hyperlink{classMeshObject_acce3ec72c4b5c21089f9efbe8a8d7abd}{shader\+Node} ()
\begin{DoxyCompactList}\small\item\em Return pointer to the shader node. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a7baad896b869d13910048b2ec1695eb3}{hide\+Selection} (bool \+\_\+hide)
\begin{DoxyCompactList}\small\item\em Hide or show the selection Node of the object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a42592c87ebbf3a79035d49181512a383}\label{classMeshObject_a42592c87ebbf3a79035d49181512a383}} 
bool \hyperlink{classMeshObject_a42592c87ebbf3a79035d49181512a383}{selection\+Visible} ()
\begin{DoxyCompactList}\small\item\em return if the selections are currently visible \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a2a3df235054e6f2bc4f070239789771a}\label{classMeshObject_a2a3df235054e6f2bc4f070239789771a}} 
void \hyperlink{classMeshObject_a2a3df235054e6f2bc4f070239789771a}{hide\+Features} (bool \+\_\+hide)
\begin{DoxyCompactList}\small\item\em Hide or show the feature Node of the object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a2132ac6b4233209fa9126b0ab9a2d145}\label{classMeshObject_a2132ac6b4233209fa9126b0ab9a2d145}} 
bool \hyperlink{classMeshObject_a2132ac6b4233209fa9126b0ab9a2d145}{features\+Visible} ()
\begin{DoxyCompactList}\small\item\em return if the feature Node of the object is currently visible \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_ab7505beae45966e06914b1554585eacd}{hide\+Area} (Status\+Bits \+\_\+bit, bool \+\_\+hide)
\begin{DoxyCompactList}\small\item\em Hide or show the area Nodes of the object. \end{DoxyCompactList}\item 
bool \hyperlink{classMeshObject_a09fd5cbd03cde019e040676f7c160f71}{area\+Visible} (Status\+Bits \+\_\+bit)
\begin{DoxyCompactList}\small\item\em Return if the selected areas are currently visible. \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject_a6131b969d9cf20775fe9abede5b01984}{mesh\+Node} ()
\begin{DoxyCompactList}\small\item\em Get the Scenegraph Mesh Node. \end{DoxyCompactList}\item 
void \hyperlink{classMeshObject_a6adfa53b3eb6a7cb697d2771a22ba18e}{bounding\+Box} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+bb\+Min, typename \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+bb\+Max)
\begin{DoxyCompactList}\small\item\em Get the Bounding\+Box of this object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a18d258031f51247572c08a33ae87a657}\label{classMeshObject_a18d258031f51247572c08a33ae87a657}} 
\hyperlink{BaseObjectData_8hh_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$ \hyperlink{classMeshObject_a18d258031f51247572c08a33ae87a657}{primary\+Node} ()
\begin{DoxyCompactList}\small\item\em Status Node for a mesh, visualizing the selection state of a mesh. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_af50b72be6d2c264c81d46c166bb6596a}\label{classMeshObject_af50b72be6d2c264c81d46c166bb6596a}} 
void \hyperlink{classMeshObject_af50b72be6d2c264c81d46c166bb6596a}{set\+Selection\+Color} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em set color for selection \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a1b4d794be31ef0167050135d730d332e}\label{classMeshObject_a1b4d794be31ef0167050135d730d332e}} 
\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \hyperlink{classMeshObject_a1b4d794be31ef0167050135d730d332e}{selection\+Color} () const
\begin{DoxyCompactList}\small\item\em get color for selection. returns -\/1 vector, if handle node does not exists \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a501eabb9ee76681ba2557af96feebaf3}\label{classMeshObject_a501eabb9ee76681ba2557af96feebaf3}} 
void \hyperlink{classMeshObject_a501eabb9ee76681ba2557af96feebaf3}{set\+Area\+Color} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em set color for areas \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a6f34576baa05ba5ce55c5751891ac331}\label{classMeshObject_a6f34576baa05ba5ce55c5751891ac331}} 
\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \hyperlink{classMeshObject_a6f34576baa05ba5ce55c5751891ac331}{area\+Color} () const
\begin{DoxyCompactList}\small\item\em get color for areas. returns -\/1 vector, if handle node does not exists \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a767f32508ce0666320f08c9769ed6d9e}\label{classMeshObject_a767f32508ce0666320f08c9769ed6d9e}} 
void \hyperlink{classMeshObject_a767f32508ce0666320f08c9769ed6d9e}{set\+Feature\+Color} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em set color for features \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a700e6633d95bd35435ace37ce85fe871}\label{classMeshObject_a700e6633d95bd35435ace37ce85fe871}} 
\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \hyperlink{classMeshObject_a700e6633d95bd35435ace37ce85fe871}{feature\+Color} () const
\begin{DoxyCompactList}\small\item\em get color for features. returns -\/1 vector, if handle node does not exists \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a4b552759237a9e7596c7e2d1436c4e17}\label{classMeshObject_a4b552759237a9e7596c7e2d1436c4e17}} 
void \hyperlink{classMeshObject_a4b552759237a9e7596c7e2d1436c4e17}{set\+Handle\+Color} (const \hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em set color for handles \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_aa66319651dd4bb2a523de58b98afa762}\label{classMeshObject_aa66319651dd4bb2a523de58b98afa762}} 
\hyperlink{namespaceACG_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \hyperlink{classMeshObject_aa66319651dd4bb2a523de58b98afa762}{handle\+Color} () const
\begin{DoxyCompactList}\small\item\em get color for handles. returns -\/1 vector, if handle node does not exists \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1SelectionNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Selection\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject_a7b3fc53a8c6d6c5e4c2e706d610a0c89}{status\+Node} ()
\item 
\mbox{\Hypertarget{classMeshObject_ab9e61e13c9afe4b79e97606c8a8b4a91}\label{classMeshObject_ab9e61e13c9afe4b79e97606c8a8b4a91}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structAreaNodeMod}{Area\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_ab9e61e13c9afe4b79e97606c8a8b4a91}{area\+Node} ()
\begin{DoxyCompactList}\small\item\em Returns the area selection node if available, nullptr otherwise. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_ade8f507589a649970fd38e88ff278d80}\label{classMeshObject_ade8f507589a649970fd38e88ff278d80}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structHandleNodeMod}{Handle\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_ade8f507589a649970fd38e88ff278d80}{handle\+Node} ()
\begin{DoxyCompactList}\small\item\em Returns the handle selection node if available, nullptr otherwise. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_a0f4ecc91efbf84fac8055d512e2ff59d}\label{classMeshObject_a0f4ecc91efbf84fac8055d512e2ff59d}} 
\hyperlink{classACG_1_1SceneGraph_1_1StatusNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ MeshT, \hyperlink{structFeatureNodeMod}{Feature\+Node\+Mod}$<$ MeshT $>$ $>$ $\ast$ \hyperlink{classMeshObject_a0f4ecc91efbf84fac8055d512e2ff59d}{feature\+Node} ()
\begin{DoxyCompactList}\small\item\em Returns the feature selection node if available, nullptr otherwise. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{B\+SP Extension ( Implements a B\+SP for the mesh used for fast searches )}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}\label{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}} 
typedef \hyperlink{classOpenMeshTriangleBSPT}{Open\+Mesh\+Triangle\+B\+S\+PT}$<$ MeshT $>$ \hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP}
\begin{DoxyCompactList}\small\item\em If requested a bsp is created for this object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classMeshObject_afdf34fdfaeee4f14f2a48376c1d4253e}\label{classMeshObject_afdf34fdfaeee4f14f2a48376c1d4253e}} 
\hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP} $\ast$ \hyperlink{classMeshObject_afdf34fdfaeee4f14f2a48376c1d4253e}{triangle\+\_\+bsp\+\_\+}
\begin{DoxyCompactList}\small\item\em If requested a bsp is created for this object. \end{DoxyCompactList}\item 
\hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP} $\ast$ \hyperlink{classMeshObject_a2c5eecdc1e2b8bb86bd07d958661c415}{request\+Triangle\+Bsp} ()
\item 
void \hyperlink{classMeshObject_a272cfc1464bf47cf8540c3a1ff798f74}{invalidate\+Triangle\+Bsp} ()
\item 
\hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP} $\ast$ \hyperlink{classMeshObject_a37fa0a3eaa83556b50bf27264be07c09}{reset\+Triangle\+Bsp} ()
\item 
bool \hyperlink{classMeshObject_a2baf2f23db829641f20c8113135b4559}{has\+Bsp} () const
\begin{DoxyCompactList}\small\item\em check if a B\+SP has been computed and is valid \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class MeshT$>$\newline
class Mesh\+Object$<$ Mesh\+T $>$}

This class provides the functionality for all kind of meshes for the framework 

Definition at line 97 of file Mesh\+Object\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classMeshObject_a711b99e933187326cbc1a71fe6cade14}\label{classMeshObject_a711b99e933187326cbc1a71fe6cade14}} 
\index{Mesh\+Object@{Mesh\+Object}!Mesh\+Object@{Mesh\+Object}}
\index{Mesh\+Object@{Mesh\+Object}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{Mesh\+Object()}{MeshObject()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::\hyperlink{classMeshObject}{Mesh\+Object} (\begin{DoxyParamCaption}\item[{const \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$ \&}]{\+\_\+object }\end{DoxyParamCaption})}



copy constructor 

Create a copy of this object 

Definition at line 73 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a1154b2d1d75a96e3c846eec0781202e5}\label{classMeshObject_a1154b2d1d75a96e3c846eec0781202e5}} 
\index{Mesh\+Object@{Mesh\+Object}!Mesh\+Object@{Mesh\+Object}}
\index{Mesh\+Object@{Mesh\+Object}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{Mesh\+Object()}{MeshObject()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::\hyperlink{classMeshObject}{Mesh\+Object} (\begin{DoxyParamCaption}\item[{\hyperlink{classDataType}{Data\+Type}}]{\+\_\+type\+Id }\end{DoxyParamCaption})}



Constructor. 

This is the standard constructor for Mesh\+Objects. As triangle and Poly Meshes are handled by this class, the type\+Id is passed to the \hyperlink{classMeshObject}{Mesh\+Object} to specify it.


\begin{DoxyParams}{Parameters}
{\em \+\_\+type\+Id} & This is the type Id the Object will use. Should be type\+Id(\char`\"{}\+Triangle\+Mesh\char`\"{}) or type\+Id(\char`\"{}\+Poly\+Mesh\char`\"{})\\
\hline
\end{DoxyParams}
Constructor for Mesh Objects. This object class gets a Separator Node giving the root node to which it should be connected. The mesh is generated internally and all nodes for visualization will be added below the scenegraph node.~\newline
You dont need to create an object of this type manually. Use Plugin\+Functions\+::add\+Tri\+Mesh or Plugin\+Functions\+::add\+Poly\+Mesh instead. The object\+Data\+Type has to match the one of MeshT ( see Types.\+hh\+::\+Data\+Type ) 

Definition at line 102 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a2d28e11ef81da8e6b6c021eba461b291}\label{classMeshObject_a2d28e11ef81da8e6b6c021eba461b291}} 
\index{Mesh\+Object@{Mesh\+Object}!````~Mesh\+Object@{$\sim$\+Mesh\+Object}}
\index{````~Mesh\+Object@{$\sim$\+Mesh\+Object}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{$\sim$\+Mesh\+Object()}{~MeshObject()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::$\sim$\hyperlink{classMeshObject}{Mesh\+Object} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



destructor 

Destructor for Mesh Objects. The destructor deletes the mesh and all Scenegraph nodes associated with the mesh or the object. 

Definition at line 123 of file Mesh\+Object\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classMeshObject_a09fd5cbd03cde019e040676f7c160f71}\label{classMeshObject_a09fd5cbd03cde019e040676f7c160f71}} 
\index{Mesh\+Object@{Mesh\+Object}!area\+Visible@{area\+Visible}}
\index{area\+Visible@{area\+Visible}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{area\+Visible()}{areaVisible()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
bool \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::area\+Visible (\begin{DoxyParamCaption}\item[{Status\+Bits}]{\+\_\+bit }\end{DoxyParamCaption})}



Return if the selected areas are currently visible. 

\begin{DoxyNote}{Note}
If the bits contain multiple area bits, than only if all are visible, this function will return true
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+bit} & Status bit to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
All visible? 
\end{DoxyReturn}


Definition at line 621 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a6adfa53b3eb6a7cb697d2771a22ba18e}\label{classMeshObject_a6adfa53b3eb6a7cb697d2771a22ba18e}} 
\index{Mesh\+Object@{Mesh\+Object}!bounding\+Box@{bounding\+Box}}
\index{bounding\+Box@{bounding\+Box}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{bounding\+Box()}{boundingBox()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::bounding\+Box (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+bb\+Min,  }\item[{typename \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+bb\+Max }\end{DoxyParamCaption})}



Get the Bounding\+Box of this object. 

Get the Bounding box size of this object 

Definition at line 644 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a8379b3522022edc2403bf0e5b5f91b96}\label{classMeshObject_a8379b3522022edc2403bf0e5b5f91b96}} 
\index{Mesh\+Object@{Mesh\+Object}!cleanup@{cleanup}}
\index{cleanup@{cleanup}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{cleanup()}{cleanup()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::cleanup (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Reset current object, including all related nodes. 

Cleanup Function for Mesh Objects. Deletes the contents of the whole object and calls \hyperlink{classMeshObject_af3eebb491cdf932514a59254c83cc30f}{Mesh\+Object\+::init} afterwards. 

Reimplemented from \hyperlink{classBaseObjectData_abdf84b94d4626b2a5e848afc152bc6e9}{Base\+Object\+Data}.



Definition at line 158 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a16d9d1d66d53f4dedda4718a3ae172f4}\label{classMeshObject_a16d9d1d66d53f4dedda4718a3ae172f4}} 
\index{Mesh\+Object@{Mesh\+Object}!get\+Objectinfo@{get\+Objectinfo}}
\index{get\+Objectinfo@{get\+Objectinfo}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{get\+Objectinfo()}{getObjectinfo()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
Q\+String \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::get\+Objectinfo (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Get all Info for the Object as a string. 

Returns a string containing all information about the current object. This also includes the information provided by \hyperlink{classBaseObject_a16966c1c32af694839bc4d31eed8759b}{Base\+Object\+Data\+::get\+Objectinfo}

\begin{DoxyReturn}{Returns}
String containing the object information 
\end{DoxyReturn}


Reimplemented from \hyperlink{classBaseObject_a16966c1c32af694839bc4d31eed8759b}{Base\+Object}.



Definition at line 703 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a2baf2f23db829641f20c8113135b4559}\label{classMeshObject_a2baf2f23db829641f20c8113135b4559}} 
\index{Mesh\+Object@{Mesh\+Object}!has\+Bsp@{has\+Bsp}}
\index{has\+Bsp@{has\+Bsp}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{has\+Bsp()}{hasBsp()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
bool \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::has\+Bsp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



check if a B\+SP has been computed and is valid 

This function checks if a bsp has been computed for this mesh object and if it is still valid (meaning, nothing has been changed on the object after the B\+SP has been computed

\begin{DoxyReturn}{Returns}
B\+SP valid? 
\end{DoxyReturn}


Definition at line 817 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_ab7505beae45966e06914b1554585eacd}\label{classMeshObject_ab7505beae45966e06914b1554585eacd}} 
\index{Mesh\+Object@{Mesh\+Object}!hide\+Area@{hide\+Area}}
\index{hide\+Area@{hide\+Area}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{hide\+Area()}{hideArea()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::hide\+Area (\begin{DoxyParamCaption}\item[{Status\+Bits}]{\+\_\+bit,  }\item[{bool}]{\+\_\+hide }\end{DoxyParamCaption})}



Hide or show the area Nodes of the object. 

Shows or hides the areas on the object 

Definition at line 598 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a7baad896b869d13910048b2ec1695eb3}\label{classMeshObject_a7baad896b869d13910048b2ec1695eb3}} 
\index{Mesh\+Object@{Mesh\+Object}!hide\+Selection@{hide\+Selection}}
\index{hide\+Selection@{hide\+Selection}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{hide\+Selection()}{hideSelection()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::hide\+Selection (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+hide }\end{DoxyParamCaption})}



Hide or show the selection Node of the object. 

Shows or hides the selections on the object 

Definition at line 571 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_af3eebb491cdf932514a59254c83cc30f}\label{classMeshObject_af3eebb491cdf932514a59254c83cc30f}} 
\index{Mesh\+Object@{Mesh\+Object}!init@{init}}
\index{init@{init}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{init()}{init()}}
{\footnotesize\ttfamily template$<$class MeshT$>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::init (\begin{DoxyParamCaption}\item[{MeshT $\ast$}]{\+\_\+mesh = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}



Initialise current object, including all related nodes. 

This function initalizes the mesh object. It creates the scenegraph nodes, the mesh and requests all required properties for the mesh. 

Definition at line 190 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a272cfc1464bf47cf8540c3a1ff798f74}\label{classMeshObject_a272cfc1464bf47cf8540c3a1ff798f74}} 
\index{Mesh\+Object@{Mesh\+Object}!invalidate\+Triangle\+Bsp@{invalidate\+Triangle\+Bsp}}
\index{invalidate\+Triangle\+Bsp@{invalidate\+Triangle\+Bsp}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{invalidate\+Triangle\+Bsp()}{invalidateTriangleBsp()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::invalidate\+Triangle\+Bsp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

If something in the mesh changes, call this function to clear the octree. You have to do a new request as the old one will be deleted. \begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000049}{Todo}]\+: Update the tree when the update function of this object is called. 

\+: dont recreate but update the old one. \end{DoxyRefDesc}
\begin{DoxyReturn}{Returns}
The new pointer to the bsp or Null if unsupported 
\end{DoxyReturn}


Definition at line 806 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_acf2bbccb615c5d77d12d297ecf729ac7}\label{classMeshObject_acf2bbccb615c5d77d12d297ecf729ac7}} 
\index{Mesh\+Object@{Mesh\+Object}!load\+Mesh@{load\+Mesh}}
\index{load\+Mesh@{load\+Mesh}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{load\+Mesh()}{loadMesh()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
bool \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::load\+Mesh (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+filename }\end{DoxyParamCaption})}



Load a mesh from the given file. 

Load the mesh data from a file. The loader uses the \hyperlink{namespaceOpenMesh}{Open\+Mesh} object loaders and therefore supports all mesh types supported by \hyperlink{namespaceOpenMesh}{Open\+Mesh}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+filename} & Full path of the file to load. \\
\hline
\end{DoxyParams}


Definition at line 664 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a6c0369a82054030a178e0dd565739ccd}\label{classMeshObject_a6c0369a82054030a178e0dd565739ccd}} 
\index{Mesh\+Object@{Mesh\+Object}!mesh@{mesh}}
\index{mesh@{mesh}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{mesh()}{mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
MeshT $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::mesh (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



return a pointer to the mesh 

Get a pointer to the object\textquotesingle{}s mesh. \begin{DoxyReturn}{Returns}
Pointer to the mesh 
\end{DoxyReturn}


Definition at line 350 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a1e0e1024578e8457a7f67d4a8af2af11}\label{classMeshObject_a1e0e1024578e8457a7f67d4a8af2af11}} 
\index{Mesh\+Object@{Mesh\+Object}!mesh@{mesh}}
\index{mesh@{mesh}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{mesh()}{mesh()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
const MeshT $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::mesh (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



return a const pointer to the mesh 

Get a const pointer to the object\textquotesingle{}s mesh. \begin{DoxyReturn}{Returns}
Const pointer to the mesh 
\end{DoxyReturn}


Definition at line 358 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a6131b969d9cf20775fe9abede5b01984}\label{classMeshObject_a6131b969d9cf20775fe9abede5b01984}} 
\index{Mesh\+Object@{Mesh\+Object}!mesh\+Node@{mesh\+Node}}
\index{mesh\+Node@{mesh\+Node}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{mesh\+Node()}{meshNode()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ MeshT $>$ $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::mesh\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the Scenegraph Mesh Node. 

Returns a pointer to the mesh node \begin{DoxyReturn}{Returns}
Pointer to the mesh node 
\end{DoxyReturn}


Definition at line 637 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_ad3aeeddb501a9c03127f67dcd92bea48}\label{classMeshObject_ad3aeeddb501a9c03127f67dcd92bea48}} 
\index{Mesh\+Object@{Mesh\+Object}!picked@{picked}}
\index{picked@{picked}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{picked()}{picked()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
bool \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::picked (\begin{DoxyParamCaption}\item[{uint}]{\+\_\+node\+\_\+idx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



detect if the node has been picked 

Given an node index from \hyperlink{namespacePluginFunctions_aa407abcd8a862ac0addd816e14ae5766}{Plugin\+Functions\+::scenegraph\+Pick} this function can be used to check if the mesh\+Node of the object has been picked.


\begin{DoxyParams}{Parameters}
{\em \+\_\+node\+\_\+idx} & Index of the picked mesh node \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool if the mesh\+Node of this object is the picking target. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classBaseObjectData_afdb0f57814b92dd4ad19c81b1601857c}{Base\+Object\+Data}.



Definition at line 734 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a2c5eecdc1e2b8bb86bd07d958661c415}\label{classMeshObject_a2c5eecdc1e2b8bb86bd07d958661c415}} 
\index{Mesh\+Object@{Mesh\+Object}!request\+Triangle\+Bsp@{request\+Triangle\+Bsp}}
\index{request\+Triangle\+Bsp@{request\+Triangle\+Bsp}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{request\+Triangle\+Bsp()}{requestTriangleBsp()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::\hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP} $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::request\+Triangle\+Bsp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Get a bsp for this object. Only supported for Triangle Meshes at the moment.

\begin{DoxyReturn}{Returns}
Pointer to bsp or Null if unsupported for this type. 
\end{DoxyReturn}


Definition at line 763 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a37fa0a3eaa83556b50bf27264be07c09}\label{classMeshObject_a37fa0a3eaa83556b50bf27264be07c09}} 
\index{Mesh\+Object@{Mesh\+Object}!reset\+Triangle\+Bsp@{reset\+Triangle\+Bsp}}
\index{reset\+Triangle\+Bsp@{reset\+Triangle\+Bsp}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{reset\+Triangle\+Bsp()}{resetTriangleBsp()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::\hyperlink{classMeshObject_a488bb0fb683729148c3cbd1f0bb69e2e}{O\+M\+Triangle\+B\+SP} $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::reset\+Triangle\+Bsp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Update the bsp for this object. Only supported for Triangle Meshes at the moment.

\begin{DoxyReturn}{Returns}
Pointer to bsp or Null if unsupported for this type. 
\end{DoxyReturn}


Definition at line 794 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_aaa1423e2a0d37abc9c3d0ad677713d6c}\label{classMeshObject_aaa1423e2a0d37abc9c3d0ad677713d6c}} 
\index{Mesh\+Object@{Mesh\+Object}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{set\+Name()}{setName()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::set\+Name (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set the name of the Object. 

Set the name of an object. All Scenegraph nodes are renamed too. It also calls \hyperlink{classBaseObjectData_aa99cbee24f472c3904aad4c7da0cd947}{Base\+Object\+Data\+::set\+Name}. 

Reimplemented from \hyperlink{classBaseObjectData_aa99cbee24f472c3904aad4c7da0cd947}{Base\+Object\+Data}.



Definition at line 310 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_acce3ec72c4b5c21089f9efbe8a8d7abd}\label{classMeshObject_acce3ec72c4b5c21089f9efbe8a8d7abd}} 
\index{Mesh\+Object@{Mesh\+Object}!shader\+Node@{shader\+Node}}
\index{shader\+Node@{shader\+Node}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{shader\+Node()}{shaderNode()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1ShaderNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node} $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::shader\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Return pointer to the shader node. 

Returns a pointer to the shader node \begin{DoxyReturn}{Returns}
Pointer to the shader node 
\end{DoxyReturn}


Reimplemented from \hyperlink{classBaseObjectData_ac09e5177c2a65d7cb7bc1e9577e41196}{Base\+Object\+Data}.



Definition at line 564 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a7b3fc53a8c6d6c5e4c2e706d610a0c89}\label{classMeshObject_a7b3fc53a8c6d6c5e4c2e706d610a0c89}} 
\index{Mesh\+Object@{Mesh\+Object}!status\+Node@{status\+Node}}
\index{status\+Node@{status\+Node}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{status\+Node()}{statusNode()}}
{\footnotesize\ttfamily template$<$class MeshT$>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1SelectionNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Selection\+NodeT}$<$MeshT$>$$\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::status\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Returns the status node (visualizing the selection) if available, nullptr otherwise. 

Definition at line 266 of file Mesh\+Object\+T.\+hh.

\mbox{\Hypertarget{classMeshObject_a9e7f52dd3565a0efd8121cad9544e46c}\label{classMeshObject_a9e7f52dd3565a0efd8121cad9544e46c}} 
\index{Mesh\+Object@{Mesh\+Object}!texture\+Node@{texture\+Node}}
\index{texture\+Node@{texture\+Node}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{texture\+Node()}{textureNode()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1EnvMapNode}{A\+C\+G\+::\+Scene\+Graph\+::\+Env\+Map\+Node} $\ast$ \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::texture\+Node (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get the Texture\+Node of the current mesh. 

Returns a pointer to the texture node \begin{DoxyReturn}{Returns}
Pointer to the texture node 
\end{DoxyReturn}


Definition at line 556 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_ab519ebaadf7fe0bf49b4fb15a5a048a2}\label{classMeshObject_ab519ebaadf7fe0bf49b4fb15a5a048a2}} 
\index{Mesh\+Object@{Mesh\+Object}!update@{update}}
\index{update@{update}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update()}{update()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update (\begin{DoxyParamCaption}\item[{\hyperlink{classUpdateType}{Update\+Type}}]{\+\_\+type = {\ttfamily \hyperlink{group__DefaultUpdateTypes_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+LL}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}



Update the whole Object (Selection,Topology,...) 

Updates the visualization of the object. Calls \hyperlink{classMeshObject_a5234c57224d49f3499adfdc8b570809f}{Mesh\+Object\+::update\+Geometry}, \hyperlink{classMeshObject_aefc7f44327fa3bc8dc0e318b81f4242a}{Mesh\+Object\+::update\+Topology}, \hyperlink{classMeshObject_a2ed07ca53b44a480535be7d048340f9f}{Mesh\+Object\+::update\+Selection} and \hyperlink{classMeshObject_aba8c1dab1b6f8a0caa3e3eceba9ebcf1}{Mesh\+Object\+::update\+Modeling\+Regions}. 

Reimplemented from \hyperlink{classBaseObjectData_ab2bb7817a0fdb692c0444971620478f0}{Base\+Object\+Data}.



Definition at line 367 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a97a5a00b7640c9da25c783cd9c6d7c18}\label{classMeshObject_a97a5a00b7640c9da25c783cd9c6d7c18}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Color@{update\+Color}}
\index{update\+Color@{update\+Color}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Color()}{updateColor()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Color (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Update Colors of all data structures. 

Updates the color information in the mesh scenegraph node 

Definition at line 434 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_ab8d0a1d6138ef3aabdee7b1c0214f105}\label{classMeshObject_ab8d0a1d6138ef3aabdee7b1c0214f105}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Features@{update\+Features}}
\index{update\+Features@{update\+Features}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Features()}{updateFeatures()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Features (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Update Feature Visualization Node. 

Updates the modeling regions scenegraph nodes 

Definition at line 463 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a5234c57224d49f3499adfdc8b570809f}\label{classMeshObject_a5234c57224d49f3499adfdc8b570809f}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Geometry@{update\+Geometry}}
\index{update\+Geometry@{update\+Geometry}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Geometry()}{updateGeometry()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Update Geometry of all data structures. 

Updates the geometry information in the mesh scenegraph node 

Definition at line 414 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_aba8c1dab1b6f8a0caa3e3eceba9ebcf1}\label{classMeshObject_aba8c1dab1b6f8a0caa3e3eceba9ebcf1}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Modeling\+Regions@{update\+Modeling\+Regions}}
\index{update\+Modeling\+Regions@{update\+Modeling\+Regions}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Modeling\+Regions()}{updateModelingRegions()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Modeling\+Regions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Call this function to update the modeling regions. 

Updates the modeling regions scenegraph nodes 

Definition at line 454 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a2ed07ca53b44a480535be7d048340f9f}\label{classMeshObject_a2ed07ca53b44a480535be7d048340f9f}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Selection@{update\+Selection}}
\index{update\+Selection@{update\+Selection}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Selection()}{updateSelection()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Selection (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Call this function to update the modeling regions. 

Updates the selection scenegraph nodes 

Definition at line 405 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_a18c857740736f55836c80a077be3b7b3}\label{classMeshObject_a18c857740736f55836c80a077be3b7b3}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Texture@{update\+Texture}}
\index{update\+Texture@{update\+Texture}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Texture()}{updateTexture()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Update \hyperlink{classTexture}{Texture} of all data structures. 

Updates the modeling regions scenegraph nodes 

Definition at line 470 of file Mesh\+Object\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshObject_aefc7f44327fa3bc8dc0e318b81f4242a}\label{classMeshObject_aefc7f44327fa3bc8dc0e318b81f4242a}} 
\index{Mesh\+Object@{Mesh\+Object}!update\+Topology@{update\+Topology}}
\index{update\+Topology@{update\+Topology}!Mesh\+Object@{Mesh\+Object}}
\subsubsection{\texorpdfstring{update\+Topology()}{updateTopology()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshObject}{Mesh\+Object}$<$ MeshT $>$\+::update\+Topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Update Topology of all data structures. 

Updates the topology information in the mesh scenegraph node 

Definition at line 441 of file Mesh\+Object\+T\+\_\+impl.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Type-\/\+Open\+Mesh/\+Object\+Types/\+Mesh\+Object/Mesh\+Object\+T.\+hh\item 
Type-\/\+Open\+Mesh/\+Object\+Types/\+Mesh\+Object/Mesh\+Object\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
