\hypertarget{a00722}{\section{Info\+Mesh\+Object\+Plugin Class Reference}
\label{a00722}\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
}


Plugin to visualize information about objects in the scene.  




{\ttfamily \#include $<$Plugin-\/\+Info\+Mesh\+Object/\+Mesh\+Object\+Info\+Plugin.\+hh$>$}

Inheritance diagram for Info\+Mesh\+Object\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.296296cm]{a00722}
\end{center}
\end{figure}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00722_ae858e96cead51ea1a9341e4c15b1a786}{void {\bfseries set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)}\label{a00722_ae858e96cead51ea1a9341e4c15b1a786}

\item 
\hypertarget{a00722_a0cf869ec41551b6d689187299a8c2d67}{void {\bfseries log} (\hyperlink{a02444_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)}\label{a00722_a0cf869ec41551b6d689187299a8c2d67}

\item 
\hypertarget{a00722_ae33bb935710aa173c18777b71775dcab}{void {\bfseries log} (Q\+String \+\_\+message)}\label{a00722_ae33bb935710aa173c18777b71775dcab}

\item 
\hypertarget{a00722_a9138635640a2d94b6788a7747783d828}{void {\bfseries add\+Widget\+To\+Statusbar} (Q\+Widget $\ast$\+\_\+widget)}\label{a00722_a9138635640a2d94b6788a7747783d828}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00722_a99a48943121ba1aee1eb3aed38e2fa5a}{Q\+String \hyperlink{a00722_a99a48943121ba1aee1eb3aed38e2fa5a}{name} ()}\label{a00722_a99a48943121ba1aee1eb3aed38e2fa5a}

\begin{DoxyCompactList}\small\item\em Name of the Plugin. \end{DoxyCompactList}\item 
\hypertarget{a00722_a7315ebae4b2679358df0feba1e1a907d}{Q\+String \hyperlink{a00722_a7315ebae4b2679358df0feba1e1a907d}{description} ()}\label{a00722_a7315ebae4b2679358df0feba1e1a907d}

\begin{DoxyCompactList}\small\item\em Description of the Plugin. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00722_af271250ed8a6be3cb7e26619bff21b11}{void {\bfseries initialize\+Plugin} ()}\label{a00722_af271250ed8a6be3cb7e26619bff21b11}

\item 
\hypertarget{a00722_add055a0fb0ccb4ec1b4b5568994b820d}{void \hyperlink{a00722_add055a0fb0ccb4ec1b4b5568994b820d}{plugins\+Initialized} ()}\label{a00722_add055a0fb0ccb4ec1b4b5568994b820d}

\begin{DoxyCompactList}\small\item\em initialize the plugin \end{DoxyCompactList}\item 
\hypertarget{a00722_a8669d5db3b210e4396e75c06223781b8}{void {\bfseries slot\+Object\+Updated} (int \+\_\+identifier, const \hyperlink{a01393}{Update\+Type} \&\+\_\+type)}\label{a00722_a8669d5db3b210e4396e75c06223781b8}

\item 
\hypertarget{a00722_a0e60d10a3daa15bebc4b7d68e8e104f1}{void {\bfseries slot\+Object\+Selection\+Changed} (int \+\_\+identifier)}\label{a00722_a0e60d10a3daa15bebc4b7d68e8e104f1}

\item 
\hypertarget{a00722_af3df4b171fea9a6e0dc8595d2f5a2ee2}{void {\bfseries slot\+All\+Cleared} ()}\label{a00722_af3df4b171fea9a6e0dc8595d2f5a2ee2}

\item 
\hypertarget{a00722_a5b45bdb5957e387daf0eb468d3d973ac}{void {\bfseries object\+Deleted} (int \+\_\+identifier)}\label{a00722_a5b45bdb5957e387daf0eb468d3d973ac}

\item 
\hypertarget{a00722_abc79c32dcd046c8d7fb3a75d26feb746}{void {\bfseries nogui\+Supported} ()}\label{a00722_abc79c32dcd046c8d7fb3a75d26feb746}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00722_a17974edb0d3e79155b73014dca0ebd76}{slot\+Information\+Requested} (const Q\+Point \+\_\+clicked\+Point, \hyperlink{a00477}{Data\+Type} \+\_\+type)
\begin{DoxyCompactList}\small\item\em Show information dialog on clicked object. \end{DoxyCompactList}\item 
\hyperlink{a00477}{Data\+Type} \hyperlink{a00722_a6fe68380aa44f93bfe29c9b52eef6e63}{supported\+Data\+Types} ()
\begin{DoxyCompactList}\small\item\em Get data type for information requests. \end{DoxyCompactList}\item 
\hypertarget{a00722_ac3d86be2d3bac32b28b8802f757959a2}{void {\bfseries slot\+Show\+Histogram} ()}\label{a00722_ac3d86be2d3bac32b28b8802f757959a2}

\item 
\hypertarget{a00722_a29704268913afc1a75ea67adf2904c64}{{\footnotesize template$<$class Mesh\+T $>$ }\\void {\bfseries print\+Mesh\+Info} (Mesh\+T $\ast$\+\_\+mesh, int \+\_\+id, unsigned int \+\_\+face, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+hit\+Point)}\label{a00722_a29704268913afc1a75ea67adf2904c64}

\item 
\hypertarget{a00722_a47840ce59b268cc1ddc5529aba5ef2b2}{void \hyperlink{a00722_a47840ce59b268cc1ddc5529aba5ef2b2}{update\+Data} (int \+\_\+identifier, const \hyperlink{a01393}{Update\+Type} \&\+\_\+type, const bool deleted)}\label{a00722_a47840ce59b268cc1ddc5529aba5ef2b2}

\begin{DoxyCompactList}\small\item\em Slot that updates the visualization. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00722_a789a657cd7906e829c1bd289d9ee0e8f}{\hyperlink{a00721}{Info\+Dialog} $\ast$ {\bfseries info\+\_\+}}\label{a00722_a789a657cd7906e829c1bd289d9ee0e8f}

\item 
\hypertarget{a00722_a4df3c2f5441eeeb78716bdc765613b74}{\hyperlink{a00720}{Info\+Bar} $\ast$ {\bfseries info\+Bar\+\_\+}}\label{a00722_a4df3c2f5441eeeb78716bdc765613b74}

\item 
\hypertarget{a00722_ac2829d0573f0d6c2575fba6c878e6500}{\hyperlink{a00330}{Base\+Object\+Data} $\ast$ {\bfseries last\+Picked\+Object\+\_\+}}\label{a00722_ac2829d0573f0d6c2575fba6c878e6500}

\item 
\hypertarget{a00722_a74ad4a2eb94e659b941bf3811db0c015}{int {\bfseries last\+Picked\+Object\+Id\+\_\+}}\label{a00722_a74ad4a2eb94e659b941bf3811db0c015}

\end{DoxyCompactItemize}
\subsection*{Scripting Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00722_a37ae8a8af0cad9fc1c30a8d3c3eae6c3}{set\+Descriptions} ()
\begin{DoxyCompactList}\small\item\em set scripting slot descriptions \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh\+T $>$ }\\int \hyperlink{a00722_a772bfbf045936a9741098e1b649b4dc0}{get\+Closest\+Vertex\+In\+Face} (Mesh\+T $\ast$\+\_\+mesh, int \+\_\+face\+\_\+idx, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+hit\+Point)
\begin{DoxyCompactList}\small\item\em Get closest vertex index from a face. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh\+T $>$ }\\int \hyperlink{a00722_a4ea7fd6e7c5eae79209b513de823d9ed}{get\+Closest\+Edge\+In\+Face} (Mesh\+T $\ast$\+\_\+mesh, int \+\_\+face\+\_\+idx, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+hit\+Point)
\begin{DoxyCompactList}\small\item\em Get closest edge index from a face. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mesh\+T $>$ }\\int \hyperlink{a00722_a46fe2eaad772f8edef78b748e6ecf972}{get\+Closest\+Vertex\+From\+Edge} (Mesh\+T $\ast$\+\_\+mesh, int \+\_\+edge\+\_\+idx, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+hit\+Point)
\begin{DoxyCompactList}\small\item\em Get closest vertex index from an edge. \end{DoxyCompactList}\item 
\hypertarget{a00722_ac94804558807cfb2f413a7bdabb1f809}{{\footnotesize template$<$class Mesh\+T $>$ }\\void \hyperlink{a00722_ac94804558807cfb2f413a7bdabb1f809}{get\+Edge\+Lengths} (Mesh\+T $\ast$\+\_\+mesh, double \&min, double \&max, double \&mean)}\label{a00722_ac94804558807cfb2f413a7bdabb1f809}

\begin{DoxyCompactList}\small\item\em Get edge lengths. \end{DoxyCompactList}\item 
\hypertarget{a00722_ae8adadad08f0fe9aa5577bb2b8b33470}{bool \hyperlink{a00722_ae8adadad08f0fe9aa5577bb2b8b33470}{get\+Edge\+Lengths} (int \+\_\+id, double \&min, double \&max, double \&mean)}\label{a00722_ae8adadad08f0fe9aa5577bb2b8b33470}

\begin{DoxyCompactList}\small\item\em Get edge lengths. \end{DoxyCompactList}\item 
int \hyperlink{a00722_a32b737b0b684468daacc128b890755df}{vertex\+Count} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get total number of vertices for a given object \end{DoxyCompactList}\item 
int \hyperlink{a00722_a794524e25aa278f2a56dc24a1f05d36b}{edge\+Count} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get total number of edges for a given object \end{DoxyCompactList}\item 
int \hyperlink{a00722_aefd7f40f49667f933fc20f11cbbfbd39}{face\+Count} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get total number of faces for a given object \end{DoxyCompactList}\item 
int \hyperlink{a00722_af6fa6f97b940fd11346c368f5c1c2761}{boundary\+Count} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the number of boundaries for a given object \end{DoxyCompactList}\item 
int \hyperlink{a00722_aa1496274c6308649199c1c276e737e53}{component\+Count} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the number of components for a given object \end{DoxyCompactList}\item 
int \hyperlink{a00722_a14606044ef996f47544babcee6eb9d76}{genus} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the genus of the given object \end{DoxyCompactList}\item 
\hyperlink{a02488_a7932a926ab17fabe9f4a0ee1b498526c}{Vector} \hyperlink{a00722_acee4bf08a8f0c70b2aa15224d33123f9}{cog} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the center of gravity \end{DoxyCompactList}\item 
\hyperlink{a02488_a7932a926ab17fabe9f4a0ee1b498526c}{Vector} \hyperlink{a00722_a31ed9dd80ec011620c9856479087e2c6}{bounding\+Box\+Min} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get minumum bounding box point \end{DoxyCompactList}\item 
\hyperlink{a02488_a7932a926ab17fabe9f4a0ee1b498526c}{Vector} \hyperlink{a00722_aee203db7fcf92dc4bf6c10fec6c66357}{bounding\+Box\+Max} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get maximum bounding box point \end{DoxyCompactList}\item 
\hyperlink{a02488_a7932a926ab17fabe9f4a0ee1b498526c}{Vector} \hyperlink{a00722_a57f9b909ee00cc757c9197e81868484f}{bounding\+Box\+Size} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the size of the bounding box \end{DoxyCompactList}\item 
double \hyperlink{a00722_ab2dca208502bb228c779ef365c2fcf08}{edge\+Length} (int \+\_\+id, int \+\_\+edge\+Handle)
\begin{DoxyCompactList}\small\item\em get the length of an edge \end{DoxyCompactList}\item 
double \hyperlink{a00722_a332e58c369079ace86c9f1d12785862b}{face\+Area} (int \+\_\+id, int \+\_\+face\+Handle)
\begin{DoxyCompactList}\small\item\em get the area of a face \end{DoxyCompactList}\item 
double \hyperlink{a00722_a6116f9de1587e441e1d7cef10bd55e23}{aspect\+Ratio} (int \+\_\+id, int \+\_\+face\+Handle)
\begin{DoxyCompactList}\small\item\em get the aspect ratio of a face \end{DoxyCompactList}\item 
int \hyperlink{a00722_af6fa8132053ba745954baa7c0fd6ca4a}{vertex\+Valence} (int \+\_\+id, int \+\_\+vertex\+Handle)
\begin{DoxyCompactList}\small\item\em get vertex valence \end{DoxyCompactList}\item 
double \hyperlink{a00722_a04a215706bae3e5475b2a5d4b0add737}{min\+Edge\+Length} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the minimal edge length \end{DoxyCompactList}\item 
double \hyperlink{a00722_a875ec39fceb0335d8e0b7e8913c3d1e4}{max\+Edge\+Length} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the maximal edge length \end{DoxyCompactList}\item 
double \hyperlink{a00722_a510a0fdd73f48046b9e3e9a840b14421}{mean\+Edge\+Length} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em get the mean edge length \end{DoxyCompactList}\item 
Q\+String \hyperlink{a00722_a0ee8eb6b1e600971f4f4c092a8718f10}{version} ()
\begin{DoxyCompactList}\small\item\em set scripting slot descriptions \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Plugin to visualize information about objects in the scene. 

Plugin to visualize information about objects in the scene 

Definition at line 83 of file Mesh\+Object\+Info\+Plugin.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00722_a6116f9de1587e441e1d7cef10bd55e23}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!aspect\+Ratio@{aspect\+Ratio}}
\index{aspect\+Ratio@{aspect\+Ratio}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{aspect\+Ratio}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::aspect\+Ratio (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id, }
\item[{int}]{\+\_\+face\+Handle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a6116f9de1587e441e1d7cef10bd55e23}


get the aspect ratio of a face 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
{\em \+\_\+face\+Handle} & face handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
aspect ratio or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 713 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_af6fa6f97b940fd11346c368f5c1c2761}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!boundary\+Count@{boundary\+Count}}
\index{boundary\+Count@{boundary\+Count}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{boundary\+Count}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::boundary\+Count (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_af6fa6f97b940fd11346c368f5c1c2761}


get the number of boundaries for a given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of boundaries or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 254 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_aee203db7fcf92dc4bf6c10fec6c66357}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!bounding\+Box\+Max@{bounding\+Box\+Max}}
\index{bounding\+Box\+Max@{bounding\+Box\+Max}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{bounding\+Box\+Max}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector} Info\+Mesh\+Object\+Plugin\+::bounding\+Box\+Max (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_aee203db7fcf92dc4bf6c10fec6c66357}


get maximum bounding box point 

get maximum point of the (axis aligned) bounding box


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
maximum point of the bounding box 
\end{DoxyReturn}


Definition at line 472 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a31ed9dd80ec011620c9856479087e2c6}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!bounding\+Box\+Min@{bounding\+Box\+Min}}
\index{bounding\+Box\+Min@{bounding\+Box\+Min}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{bounding\+Box\+Min}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector} Info\+Mesh\+Object\+Plugin\+::bounding\+Box\+Min (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a31ed9dd80ec011620c9856479087e2c6}


get minumum bounding box point 

get minimum point of the (axis aligned) bounding box


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
minimum point of the bounding box 
\end{DoxyReturn}


Definition at line 422 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a57f9b909ee00cc757c9197e81868484f}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!bounding\+Box\+Size@{bounding\+Box\+Size}}
\index{bounding\+Box\+Size@{bounding\+Box\+Size}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{bounding\+Box\+Size}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector} Info\+Mesh\+Object\+Plugin\+::bounding\+Box\+Size (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a57f9b909ee00cc757c9197e81868484f}


get the size of the bounding box 

get the size of the (axis aligned) bounding box


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
size of the bounding box 
\end{DoxyReturn}


Definition at line 522 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_acee4bf08a8f0c70b2aa15224d33123f9}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!cog@{cog}}
\index{cog@{cog}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{cog}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector} Info\+Mesh\+Object\+Plugin\+::cog (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_acee4bf08a8f0c70b2aa15224d33123f9}


get the center of gravity 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the center of gravity 
\end{DoxyReturn}


Definition at line 380 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_aa1496274c6308649199c1c276e737e53}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!component\+Count@{component\+Count}}
\index{component\+Count@{component\+Count}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{component\+Count}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::component\+Count (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_aa1496274c6308649199c1c276e737e53}


get the number of components for a given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of components or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 296 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a794524e25aa278f2a56dc24a1f05d36b}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!edge\+Count@{edge\+Count}}
\index{edge\+Count@{edge\+Count}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{edge\+Count}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::edge\+Count (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a794524e25aa278f2a56dc24a1f05d36b}


get total number of edges for a given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of edges or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 170 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_ab2dca208502bb228c779ef365c2fcf08}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!edge\+Length@{edge\+Length}}
\index{edge\+Length@{edge\+Length}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{edge\+Length}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::edge\+Length (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id, }
\item[{int}]{\+\_\+edge\+Handle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_ab2dca208502bb228c779ef365c2fcf08}


get the length of an edge 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
{\em \+\_\+edge\+Handle} & edge handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
edge length or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 573 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a332e58c369079ace86c9f1d12785862b}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!face\+Area@{face\+Area}}
\index{face\+Area@{face\+Area}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{face\+Area}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::face\+Area (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id, }
\item[{int}]{\+\_\+face\+Handle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a332e58c369079ace86c9f1d12785862b}


get the area of a face 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
{\em \+\_\+face\+Handle} & face handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
face area or -\/1 if an error occured 
\end{DoxyReturn}
T\+O\+D\+O implement polygon\+Area 

Definition at line 638 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_aefd7f40f49667f933fc20f11cbbfbd39}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!face\+Count@{face\+Count}}
\index{face\+Count@{face\+Count}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{face\+Count}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::face\+Count (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_aefd7f40f49667f933fc20f11cbbfbd39}


get total number of faces for a given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of faces or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 212 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a14606044ef996f47544babcee6eb9d76}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!genus@{genus}}
\index{genus@{genus}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{genus}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::genus (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a14606044ef996f47544babcee6eb9d76}


get the genus of the given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the genus 
\end{DoxyReturn}
T\+O\+D\+O this formula only works for closed objects\+: fix it 

Definition at line 338 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a4ea7fd6e7c5eae79209b513de823d9ed}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!get\+Closest\+Edge\+In\+Face@{get\+Closest\+Edge\+In\+Face}}
\index{get\+Closest\+Edge\+In\+Face@{get\+Closest\+Edge\+In\+Face}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{get\+Closest\+Edge\+In\+Face}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ int Info\+Mesh\+Object\+Plugin\+::get\+Closest\+Edge\+In\+Face (
\begin{DoxyParamCaption}
\item[{Mesh\+T $\ast$}]{\+\_\+mesh, }
\item[{int}]{\+\_\+face\+\_\+idx, }
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+hit\+Point}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00722_a4ea7fd6e7c5eae79209b513de823d9ed}


Get closest edge index from a face. 

Find closest edge to selection.


\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Reference to the mesh \\
\hline
{\em \+\_\+face\+\_\+idx} & Index of the face that has been clicked on \\
\hline
{\em \+\_\+hit\+Point} & The point which will be tested\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
index of the closest edge in the face to the hitpoint 
\end{DoxyReturn}


Definition at line 627 of file Mesh\+Object\+Info\+Plugin.\+cc.

\hypertarget{a00722_a46fe2eaad772f8edef78b748e6ecf972}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!get\+Closest\+Vertex\+From\+Edge@{get\+Closest\+Vertex\+From\+Edge}}
\index{get\+Closest\+Vertex\+From\+Edge@{get\+Closest\+Vertex\+From\+Edge}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{get\+Closest\+Vertex\+From\+Edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ int Info\+Mesh\+Object\+Plugin\+::get\+Closest\+Vertex\+From\+Edge (
\begin{DoxyParamCaption}
\item[{Mesh\+T $\ast$}]{\+\_\+mesh, }
\item[{int}]{\+\_\+edge\+\_\+idx, }
\item[{{\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+hit\+Point}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00722_a46fe2eaad772f8edef78b748e6ecf972}


Get closest vertex index from an edge. 

Find closest vertex on the edge (endpoint)


\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Reference to the mesh \\
\hline
{\em \+\_\+edge\+\_\+idx} & Index of the edge that has been clicked on \\
\hline
{\em \+\_\+hit\+Point} & The point which will be tested\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
index of the closest vertex on the edge 
\end{DoxyReturn}


Definition at line 674 of file Mesh\+Object\+Info\+Plugin.\+cc.

\hypertarget{a00722_a772bfbf045936a9741098e1b649b4dc0}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!get\+Closest\+Vertex\+In\+Face@{get\+Closest\+Vertex\+In\+Face}}
\index{get\+Closest\+Vertex\+In\+Face@{get\+Closest\+Vertex\+In\+Face}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{get\+Closest\+Vertex\+In\+Face}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ int Info\+Mesh\+Object\+Plugin\+::get\+Closest\+Vertex\+In\+Face (
\begin{DoxyParamCaption}
\item[{Mesh\+T $\ast$}]{\+\_\+mesh, }
\item[{int}]{\+\_\+face\+\_\+idx, }
\item[{{\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+hit\+Point}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00722_a772bfbf045936a9741098e1b649b4dc0}


Get closest vertex index from a face. 

Find closest vertex to selection.


\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Reference to the mesh \\
\hline
{\em \+\_\+face\+\_\+idx} & Index of the face that has been clicked on \\
\hline
{\em \+\_\+hit\+Point} & The point that is used as the reference\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
index of the closest vertex of the face to the hitpoint 
\end{DoxyReturn}


Definition at line 588 of file Mesh\+Object\+Info\+Plugin.\+cc.

\hypertarget{a00722_a875ec39fceb0335d8e0b7e8913c3d1e4}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!max\+Edge\+Length@{max\+Edge\+Length}}
\index{max\+Edge\+Length@{max\+Edge\+Length}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{max\+Edge\+Length}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::max\+Edge\+Length (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a875ec39fceb0335d8e0b7e8913c3d1e4}


get the maximal edge length 

get maximal edge length for a given object


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
maximal edge length or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 852 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a510a0fdd73f48046b9e3e9a840b14421}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!mean\+Edge\+Length@{mean\+Edge\+Length}}
\index{mean\+Edge\+Length@{mean\+Edge\+Length}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{mean\+Edge\+Length}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::mean\+Edge\+Length (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a510a0fdd73f48046b9e3e9a840b14421}


get the mean edge length 

get the mean edge length for a given object


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
mean edge length or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 869 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a04a215706bae3e5475b2a5d4b0add737}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!min\+Edge\+Length@{min\+Edge\+Length}}
\index{min\+Edge\+Length@{min\+Edge\+Length}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{min\+Edge\+Length}]{\setlength{\rightskip}{0pt plus 5cm}double Info\+Mesh\+Object\+Plugin\+::min\+Edge\+Length (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a04a215706bae3e5475b2a5d4b0add737}


get the minimal edge length 

get minimal edge length for a given object


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
minimal edge length or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 835 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a37ae8a8af0cad9fc1c30a8d3c3eae6c3}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!set\+Descriptions@{set\+Descriptions}}
\index{set\+Descriptions@{set\+Descriptions}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{set\+Descriptions}]{\setlength{\rightskip}{0pt plus 5cm}void Info\+Mesh\+Object\+Plugin\+::set\+Descriptions (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00722_a37ae8a8af0cad9fc1c30a8d3c3eae6c3}


set scripting slot descriptions 

set the descriptions for scripting slots

Definition at line 60 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_a17974edb0d3e79155b73014dca0ebd76}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!slot\+Information\+Requested@{slot\+Information\+Requested}}
\index{slot\+Information\+Requested@{slot\+Information\+Requested}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{slot\+Information\+Requested}]{\setlength{\rightskip}{0pt plus 5cm}void Info\+Mesh\+Object\+Plugin\+::slot\+Information\+Requested (
\begin{DoxyParamCaption}
\item[{const Q\+Point}]{\+\_\+clicked\+Point, }
\item[{{\bf Data\+Type}}]{\+\_\+type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}}\label{a00722_a17974edb0d3e79155b73014dca0ebd76}


Show information dialog on clicked object. 

This slot is called each time the user clicks on an object. The information plugin for a specific type should display the necessary information on all entity types and the clicked object itself.


\begin{DoxyParams}{Parameters}
{\em \+\_\+clicked\+Point} & The 2\+D point in screen coords, which the user has clicked \\
\hline
{\em \+\_\+type} & Data type to be registered \\
\hline
\end{DoxyParams}


Implements \hyperlink{a00723_a8fd0980e20c70745d9c00c2e43f879f5}{Information\+Interface}.



Definition at line 693 of file Mesh\+Object\+Info\+Plugin.\+cc.

\hypertarget{a00722_a6fe68380aa44f93bfe29c9b52eef6e63}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!supported\+Data\+Types@{supported\+Data\+Types}}
\index{supported\+Data\+Types@{supported\+Data\+Types}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{supported\+Data\+Types}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Data\+Type} Info\+Mesh\+Object\+Plugin\+::supported\+Data\+Types (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}}\label{a00722_a6fe68380aa44f93bfe29c9b52eef6e63}


Get data type for information requests. 

This slot is called by the core in order to identify the data types for which the plugin provides information.

\begin{DoxyReturn}{Returns}
The supported data types (O\+R'ed in case of multiple types) 
\end{DoxyReturn}


Implements \hyperlink{a00723_ac3f05cb6b27872e2b8bc7b8632c93768}{Information\+Interface}.



Definition at line 122 of file Mesh\+Object\+Info\+Plugin.\+cc.

\hypertarget{a00722_a0ee8eb6b1e600971f4f4c092a8718f10}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!version@{version}}
\index{version@{version}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{version}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Info\+Mesh\+Object\+Plugin\+::version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [slot]}}}\label{a00722_a0ee8eb6b1e600971f4f4c092a8718f10}


set scripting slot descriptions 

set the descriptions for scripting slots 

Definition at line 199 of file Mesh\+Object\+Info\+Plugin.\+hh.

\hypertarget{a00722_a32b737b0b684468daacc128b890755df}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!vertex\+Count@{vertex\+Count}}
\index{vertex\+Count@{vertex\+Count}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{vertex\+Count}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::vertex\+Count (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_a32b737b0b684468daacc128b890755df}


get total number of vertices for a given object 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & object id \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of vertices or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 128 of file Mesh\+Object\+Info\+Scripting.\+cc.

\hypertarget{a00722_af6fa8132053ba745954baa7c0fd6ca4a}{\index{Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}!vertex\+Valence@{vertex\+Valence}}
\index{vertex\+Valence@{vertex\+Valence}!Info\+Mesh\+Object\+Plugin@{Info\+Mesh\+Object\+Plugin}}
\subsubsection[{vertex\+Valence}]{\setlength{\rightskip}{0pt plus 5cm}int Info\+Mesh\+Object\+Plugin\+::vertex\+Valence (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id, }
\item[{int}]{\+\_\+vertex\+Handle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00722_af6fa8132053ba745954baa7c0fd6ca4a}


get vertex valence 


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of an object \\
\hline
{\em \+\_\+vertex\+Handle} & vertex handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
vertex valence or -\/1 if an error occured 
\end{DoxyReturn}


Definition at line 766 of file Mesh\+Object\+Info\+Scripting.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Info\+Mesh\+Object/Mesh\+Object\+Info\+Plugin.\+hh\item 
Plugin-\/\+Info\+Mesh\+Object/Mesh\+Object\+Info\+Plugin.\+cc\item 
Plugin-\/\+Info\+Mesh\+Object/Mesh\+Object\+Info\+Scripting.\+cc\end{DoxyCompactItemize}
