\hypertarget{a01256}{\section{Subdivider\+Plugin Class Reference}
\label{a01256}\index{Subdivider\+Plugin@{Subdivider\+Plugin}}
}
Inheritance diagram for Subdivider\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.259843cm]{a01256}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01256_adbc7b88c41b0a47bf7e74380421abaa5}{subdivide} (int \+\_\+object\+Id, Q\+String \+\_\+algorithm, int \+\_\+steps, bool \+\_\+update\+\_\+points=true)
\begin{DoxyCompactList}\small\item\em Scripting slot for subdivision. \end{DoxyCompactList}\item 
void \hyperlink{a01256_adcf2d2f420d1ee66d1a0f700d88ac568}{simple\+Subdivide} (int \+\_\+object\+Id, Q\+String \+\_\+algorithm, int \+\_\+steps, double \+\_\+parameter, bool \+\_\+update\+\_\+points=true)
\begin{DoxyCompactList}\small\item\em Scripting slot for the simple subdivision algorithms. \end{DoxyCompactList}\item 
\hypertarget{a01256_a0851ff8d7ad3064f8efccaf9e80e7dc7}{Q\+String {\bfseries version} ()}\label{a01256_a0851ff8d7ad3064f8efccaf9e80e7dc7}

\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01256_a171cd81a3483dc5aa85554b22dd55503}{void {\bfseries update\+View} ()}\label{a01256_a171cd81a3483dc5aa85554b22dd55503}

\item 
\hypertarget{a01256_a541433691e2cb296877e32968c0892a5}{void {\bfseries updated\+Object} (int \+\_\+id, const \hyperlink{a01393}{Update\+Type} \&\+\_\+type)}\label{a01256_a541433691e2cb296877e32968c0892a5}

\item 
\hypertarget{a01256_ac42ead5ff0b2a4c92930435736524445}{void {\bfseries add\+Pick\+Mode} (const std\+::string \&\+\_\+mode)}\label{a01256_ac42ead5ff0b2a4c92930435736524445}

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

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

\item 
\hypertarget{a01256_a6cf08d3ca2dbddda66ae3bad2a67ebb1}{void {\bfseries add\+Empty\+Object} (\hyperlink{a00477}{Data\+Type} \+\_\+type, int \&\+\_\+id)}\label{a01256_a6cf08d3ca2dbddda66ae3bad2a67ebb1}

\item 
\hypertarget{a01256_a0087a4c53b0cdd40e27c3a2782f2ffc6}{void {\bfseries define\+View\+Mode} (Q\+String \+\_\+mode, Q\+String\+List \+\_\+used\+Widgets)}\label{a01256_a0087a4c53b0cdd40e27c3a2782f2ffc6}

\item 
\hypertarget{a01256_a826817e65bee354755c5f2251a8c3466}{void {\bfseries add\+Toolbox} (Q\+String \+\_\+name, Q\+Widget $\ast$\+\_\+widget, Q\+Icon $\ast$\+\_\+icon)}\label{a01256_a826817e65bee354755c5f2251a8c3466}

\item 
\hypertarget{a01256_a21dba44f7734fb6500b47d5d5cf4d8ea}{void {\bfseries create\+Backup} (int \+\_\+id, Q\+String \+\_\+name, \hyperlink{a01393}{Update\+Type} \+\_\+type=\hyperlink{a03407_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+L\+L})}\label{a01256_a21dba44f7734fb6500b47d5d5cf4d8ea}

\item 
\hypertarget{a01256_abb2ae5b8ce66c0967f89a22ccdb5b94c}{void {\bfseries set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)}\label{a01256_abb2ae5b8ce66c0967f89a22ccdb5b94c}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a01256_a61f8d7c4700bcb7fc3fce8c298d00339}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a01256_aa823b99c60842af7480d0d456bc0bd43}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01256_a048f0d8dbcc4689713eaa7f7fc52fc1e}{void {\bfseries initialize\+Plugin} ()}\label{a01256_a048f0d8dbcc4689713eaa7f7fc52fc1e}

\item 
\hypertarget{a01256_acc7324fc0961dac62331c25879a6738b}{void {\bfseries plugins\+Initialized} ()}\label{a01256_acc7324fc0961dac62331c25879a6738b}

\item 
\hypertarget{a01256_a5b11194eefd0a2f066bbca53c5d6ebd3}{void \hyperlink{a01256_a5b11194eefd0a2f066bbca53c5d6ebd3}{nogui\+Supported} ()}\label{a01256_a5b11194eefd0a2f066bbca53c5d6ebd3}

\begin{DoxyCompactList}\small\item\em Make plugin available in no-\/\+G\+U\+I mode. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01256_adafbc7474c48ab67faf0ab8310d314aa}{void {\bfseries slot\+Subdivide\+Uniform\+Button} ()}\label{a01256_adafbc7474c48ab67faf0ab8310d314aa}

\item 
\hypertarget{a01256_a5b5e1716a3830f73503c558b9a33437b}{void {\bfseries slot\+Simple\+Subdivide\+Button} ()}\label{a01256_a5b5e1716a3830f73503c558b9a33437b}

\item 
\hypertarget{a01256_afde8f0d99cd0838e5edb3e4c5cdbbaeb}{bool {\bfseries test\+\_\+trimesh\+\_\+object} (int \+\_\+identifier, \hyperlink{a00330}{Base\+Object\+Data} $\ast$\&\+\_\+object)}\label{a01256_afde8f0d99cd0838e5edb3e4c5cdbbaeb}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01256_ae1f35adc1e2f925132ce29ff166dcf98}{\hyperlink{a01258}{subdivider\+Toolbar\+Widget} $\ast$ \hyperlink{a01256_ae1f35adc1e2f925132ce29ff166dcf98}{tool\+\_\+}}\label{a01256_ae1f35adc1e2f925132ce29ff166dcf98}

\begin{DoxyCompactList}\small\item\em Widget for Toolbox. \end{DoxyCompactList}\item 
\hypertarget{a01256_a301bf00ad162a0d87bc86cc6ae2ac5ba}{Q\+Icon $\ast$ {\bfseries tool\+Icon\+\_\+}}\label{a01256_a301bf00ad162a0d87bc86cc6ae2ac5ba}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 70 of file Subdivider\+Plugin.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01256_aa823b99c60842af7480d0d456bc0bd43}{\index{Subdivider\+Plugin@{Subdivider\+Plugin}!description@{description}}
\index{description@{description}!Subdivider\+Plugin@{Subdivider\+Plugin}}
\subsubsection[{description}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Subdivider\+Plugin\+::description (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a01256_aa823b99c60842af7480d0d456bc0bd43}


Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

Implements \hyperlink{a00322_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 163 of file Subdivider\+Plugin.\+hh.

\hypertarget{a01256_a61f8d7c4700bcb7fc3fce8c298d00339}{\index{Subdivider\+Plugin@{Subdivider\+Plugin}!name@{name}}
\index{name@{name}!Subdivider\+Plugin@{Subdivider\+Plugin}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Subdivider\+Plugin\+::name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a01256_a61f8d7c4700bcb7fc3fce8c298d00339}


Return a name for the plugin. 

This Function has to return the name of the plugin. 

Implements \hyperlink{a00322_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 162 of file Subdivider\+Plugin.\+hh.

\hypertarget{a01256_adcf2d2f420d1ee66d1a0f700d88ac568}{\index{Subdivider\+Plugin@{Subdivider\+Plugin}!simple\+Subdivide@{simple\+Subdivide}}
\index{simple\+Subdivide@{simple\+Subdivide}!Subdivider\+Plugin@{Subdivider\+Plugin}}
\subsubsection[{simple\+Subdivide}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivider\+Plugin\+::simple\+Subdivide (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{Q\+String}]{\+\_\+algorithm, }
\item[{int}]{\+\_\+steps, }
\item[{double}]{\+\_\+parameter, }
\item[{bool}]{\+\_\+update\+\_\+points = {\ttfamily true}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a01256_adcf2d2f420d1ee66d1a0f700d88ac568}


Scripting slot for the simple subdivision algorithms. 

Supported algorithm are\+:

Triangle meshes\+:
\begin{DoxyItemize}
\item longest (Split all edges in descending order until all edges are shorter than given maximal edge length)
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Object to work on \\
\hline
{\em \+\_\+algorithm} & String describing the algorithm to use \\
\hline
{\em \+\_\+steps} & Number of iterations \\
\hline
{\em \+\_\+parameter} & Additional parameter depending on the algorithm (usually the maximal edge length in the final mesh) \\
\hline
{\em \+\_\+update\+\_\+points} & Update original point locations \\
\hline
\end{DoxyParams}


Definition at line 174 of file Subdivider\+Plugin.\+cc.

\hypertarget{a01256_adbc7b88c41b0a47bf7e74380421abaa5}{\index{Subdivider\+Plugin@{Subdivider\+Plugin}!subdivide@{subdivide}}
\index{subdivide@{subdivide}!Subdivider\+Plugin@{Subdivider\+Plugin}}
\subsubsection[{subdivide}]{\setlength{\rightskip}{0pt plus 5cm}void Subdivider\+Plugin\+::subdivide (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{Q\+String}]{\+\_\+algorithm, }
\item[{int}]{\+\_\+steps, }
\item[{bool}]{\+\_\+update\+\_\+points = {\ttfamily true}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a01256_adbc7b88c41b0a47bf7e74380421abaa5}


Scripting slot for subdivision. 

Supported algorithm are\+:

Polymeshes\+:
\begin{DoxyItemize}
\item catmull\+Clark
\end{DoxyItemize}

Triangle Meshes\+:
\begin{DoxyItemize}
\item loop
\item sqrt3
\item interpolating\+\_\+sqrt3
\item modified\+Butterfly
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Object to work on \\
\hline
{\em \+\_\+algorithm} & String describing the algorithm to use \\
\hline
{\em \+\_\+steps} & Number of iterations \\
\hline
{\em \+\_\+update\+\_\+points} & Update original point locations \\
\hline
\end{DoxyParams}


Definition at line 207 of file Subdivider\+Plugin.\+cc.



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