\hypertarget{a06872}{}\section{Base\+Interface Class Reference}
\label{a06872}\index{Base\+Interface@{Base\+Interface}}


Interface class from which all plugins have to be created.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+Base\+Interface.\+hh$>$}

Inheritance diagram for Base\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a06872}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_a2087c7acf96aa7c4ef44f0b4508745a8}{exit} ()
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_a79ba17f1f9aca08b95ec56f85d2d1204}{nogui\+Supported} ()
\item 
\mbox{\Hypertarget{a06872_aab4caea3727739ce97fa28bdc5ddf575}\label{a06872_aab4caea3727739ce97fa28bdc5ddf575}} 
virtual \hyperlink{a06872_aab4caea3727739ce97fa28bdc5ddf575}{$\sim$\+Base\+Interface} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Initialization}
\label{_amgrp61bcd96a2c1f8026527cbf2019d6e9a4}%
\label{a06872_BaseInterfaceInitialization}%
\Hypertarget{a06872_BaseInterfaceInitialization}%
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_a705fdf2e221af47198aed689b0da7a32}{initialize\+Plugin} ()
\begin{DoxyCompactList}\small\item\em Initialize Plugin. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a5f240478907447bf172618bd4205df65}{plugins\+Initialized} ()
\begin{DoxyCompactList}\small\item\em Initialize Plugin step 2. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a2e7b493a68026d19c2b5f97d2bda4a7c}{plugins\+Initialized} (Q\+Vector$<$ Q\+Pair$<$ Q\+String, Q\+String $>$$>$ const \&\+\_\+plugin\+Options)
\begin{DoxyCompactList}\small\item\em Initialize Plugin step 2 alternative. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Object/\+View updates}
\label{_amgrpeee71150aa2e6df0ee8ba7b088f08449}%
\label{a06872_BaseInterfaceUpdateSlots}%
\Hypertarget{a06872_BaseInterfaceUpdateSlots}%
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_ae58a2d95eae6eddf5df443beb20f3c44}{slot\+Object\+Updated} (int \+\_\+identifier)
\begin{DoxyCompactList}\small\item\em An object has been updated by another plugin. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a1bd91e2e79467c2fff4d595fcdaffdf3}{slot\+Object\+Updated} (int \+\_\+identifier, const \hyperlink{a07096}{Update\+Type} \&\+\_\+type)
\begin{DoxyCompactList}\small\item\em An object has been updated by another plugin. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_aa00a3111da5d92c9d001a0a8272c5a91}{slot\+All\+Cleared} ()
\begin{DoxyCompactList}\small\item\em Called if the whole scene is cleared. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_ac8e436c6df44130c1696069754bfc685}{slot\+Object\+Selection\+Changed} (int \+\_\+identifier)
\begin{DoxyCompactList}\small\item\em The active object has changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_aca92d1efce421f6a6d4272083f6631d7}{slot\+Visibility\+Changed} (int \+\_\+identifier)
\begin{DoxyCompactList}\small\item\em An object has been shown or hidden. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_aa7832a19f7fc5be5280035f688583fda}{slot\+Object\+Properties\+Changed} (int \+\_\+identifier)
\begin{DoxyCompactList}\small\item\em Object properties have been changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a0e44db8563463a86bd9f125d3cdf7fc2}{slot\+View\+Changed} ()
\begin{DoxyCompactList}\small\item\em View has changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_ae61fc95417f697bed1b5b5663cdf1d05}{slot\+Scene\+Drawn} ()
\begin{DoxyCompactList}\small\item\em triggered after a scene has been drawn \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_ab1368b9bfb223952913475d76883b009}{slot\+Draw\+Mode\+Changed} (int \+\_\+viewer\+Id)
\begin{DoxyCompactList}\small\item\em A viewer changed its draw mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_ace0d6b943ce94f48c40e8c0e17a8413e}{update\+View} ()
\begin{DoxyCompactList}\small\item\em Update current view in Main Application. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a4957ed2f703b4a1515fa13f6c5acbc95}{block\+Scenegraph\+Updates} (bool \+\_\+block)
\begin{DoxyCompactList}\small\item\em Tell the core to prevent scenegraph updates. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a287b9cdde5984fae3e19b051284cdaa2}{updated\+Object} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em An object has been changed or added by this plugin. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a49a38de5185d75fc95e7932b06416b55}{updated\+Object} (int \+\_\+identifier, const \hyperlink{a07096}{Update\+Type} \&\+\_\+type)
\begin{DoxyCompactList}\small\item\em An object has been changed or added by this plugin. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_a38b332c6d6faf5f1c6336199e7a9933e}{node\+Visibility\+Changed} (int \+\_\+identifier)
\begin{DoxyCompactList}\small\item\em A scenegraph node has been shown or hidden. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Plugin identification}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_a0a559d28f41b730c5130ffc84f4a9480}{set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)
\begin{DoxyCompactList}\small\item\em Set a description for a public slot. \end{DoxyCompactList}\item 
virtual Q\+String \hyperlink{a06872_a2b351aa6ef0eb368bce735e243235958}{name} ()=0
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
virtual Q\+String \hyperlink{a06872_a43f0d3612695b53c848c14f48fea9a7a}{description} ()=0
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
virtual Q\+String \hyperlink{a06872_a1223005ae02b961eb515823343811adc}{version} ()
\begin{DoxyCompactList}\small\item\em Return a version string for your plugin. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Renderer control}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a06872_a77991fde5d0ba3c84aee93fdebd9f81b}{set\+Renderer} (unsigned int \+\_\+viewer, Q\+String \+\_\+renderer\+Name)
\begin{DoxyCompactList}\small\item\em Set a renderer for the given viewer. \end{DoxyCompactList}\item 
virtual void \hyperlink{a06872_ab5e4702d75c03875efd5743555cb6675}{get\+Current\+Renderer} (unsigned int \+\_\+viewer, Q\+String \&\+\_\+renderer\+Name)
\begin{DoxyCompactList}\small\item\em Get the current renderer for the given viewer. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface class from which all plugins have to be created. 

You have to implement at least name and description for your plugin. All other functions and signals are optional. If you want to implement or use them just add them to your plugin header. A detailed description of this interface can be found in the \hyperlink{baseInterfacePage}{Base Interface} .

See \hyperlink{pluginProgramming}{Plugin Programming} for a tutorial on plugin programming.

Also see \hyperlink{dataFlow}{Dataflow} diagrams for a detailed overview of Open\+Flipper\textquotesingle{}s data flow and interface function calls. 

Definition at line 65 of file Base\+Interface.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a06872_a4957ed2f703b4a1515fa13f6c5acbc95}\label{a06872_a4957ed2f703b4a1515fa13f6c5acbc95}} 
\index{Base\+Interface@{Base\+Interface}!block\+Scenegraph\+Updates@{block\+Scenegraph\+Updates}}
\index{block\+Scenegraph\+Updates@{block\+Scenegraph\+Updates}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{block\+Scenegraph\+Updates()}{blockScenegraphUpdates()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::block\+Scenegraph\+Updates (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Tell the core to prevent scenegraph updates. 

Emit this Signal if you want to skip scenegraph updates. E.\+g. if you add a large number of objects or modify them it\textquotesingle{}s much more efficient to block scenegraph updates until you finished and then do only one update run.

The function itself is counting the number of blocks internally to allow multiple plugins for concurrent blocks. The function is queued to ensure that it is processed in line with load save operations. 

Definition at line 133 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a43f0d3612695b53c848c14f48fea9a7a}\label{a06872_a43f0d3612695b53c848c14f48fea9a7a}} 
\index{Base\+Interface@{Base\+Interface}!description@{description}}
\index{description@{description}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily virtual Q\+String Base\+Interface\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

Implemented in \hyperlink{a10308_aceea380141d503975a57e94a0a98d2b0}{Poly\+Line\+Plugin}, \hyperlink{a11220_a8b680910aeb280481706975f73cd0d69}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{a10288_acd29b33996fc5523deb7d1c28a527d33}{Move\+Plugin}, \hyperlink{a11080_a4d8ce433488286946b5fa462282242fc}{File\+V\+T\+K\+Plugin}, \hyperlink{a11244_a5a1675aff2a532c512df9e821cd10125}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{a10616_a6d0daf61b383840cb6654357436e67cf}{Skeleton\+Editing\+Plugin}, \hyperlink{a10108_a465da8d3bb6e7e46a754e52bf5c44f6f}{Decimater\+Plugin}, \hyperlink{a10668_acc94f8e77371577fa03672031dc68078}{Texture\+Control\+Plugin}, \hyperlink{a11248_acb8c31db27457a32e3e3f26f6618d78c}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{a10460_a5b8dbfa6a4adfab5ffa2a44f958cf8f2}{Property\+Vis\+Plugin}, \hyperlink{a11212_adca1f49abdc3f769a792247e61924849}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{a11216_a58004750b9b5fc033a960cbcf3d680f7}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{a10048_a1cc5be1b47d6d185d4e5e188f04016d1}{Backup\+Plugin}, \hyperlink{a11236_a13447eb3b63c0b688b38e9e0b4ee56d7}{Object\+Selection\+Plugin}, \hyperlink{a11240_a0010ed0b292f4692be9bed7374e8f65e}{Poly\+Line\+Selection\+Plugin}, \hyperlink{a10644_aa823b99c60842af7480d0d456bc0bd43}{Subdivider\+Plugin}, \hyperlink{a10956_a0fe9383091052983b43f3943bd12815e}{File\+O\+B\+J\+Plugin}, \hyperlink{a11340_a85165056ad7039a1fc02eb19b774a8cd}{Type\+Light\+Plugin}, \hyperlink{a10612_ae7f2563114d0c28bac1ca9cae700b9f4}{Skeletal\+Animation\+Plugin}, \hyperlink{a10076_a16776a5218aaccc7f25c824154b53573}{Data\+Control\+Plugin}, \hyperlink{a10168_a7315ebae4b2679358df0feba1e1a907d}{Info\+Mesh\+Object\+Plugin}, \hyperlink{a10700_a93ca8f962877436aa9d2e313646c0aeb}{View\+Control\+Plugin}, \hyperlink{a12060_aa3977a8d8a1e7549543834ae0c25122f}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{a07160_a563f0454d1b416932c46a9288db2f57e}{Smoother\+Plugin}, \hyperlink{a10996_a4bbdbf2fb4cfc0146ade2ab977b2dfbe}{File\+P\+T\+S\+Plugin}, \hyperlink{a10072_aac59a66576994991d75924ad0d7d3ab9}{Components\+Plugin}, \hyperlink{a10964_a8f7dd8b9f07e2fa8e1d47adeb8bf06b8}{File\+O\+F\+F\+Plugin}, \hyperlink{a10180_a46bbec388cbedb2df6c2577a6213b9fe}{Info\+Skeleton\+Object\+Plugin}, \hyperlink{a10196_a6ec7518f0c67fcab15256a9fe7c87760}{Isotropic\+Remesher\+Plugin}, \hyperlink{a10552_af1bc4baef59a823ce1eb69d2d249dd2f}{Remesher\+Plugin}, \hyperlink{a11284_a5d3320788802b5376f7511e3f922e133}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{a11288_aaad36266b5f99eb33fc2df331161d7b8}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{a10924_aa3c177b14472d9fd6496c5e46f71a681}{File\+Bundle\+Plugin}, \hyperlink{a10980_aec619d1ee5401da05e3b2d75bedf28d0}{File\+Open\+Volume\+Mesh\+Plugin}, \hyperlink{a11760_a2df7043b880de6d6f2a1d3f52b8d31ed}{Type\+Polyhedral\+Mesh\+Plugin}, \hyperlink{a10640_a15759127498dcf10a0ba9bd67b1872ec}{Splat\+Cloud\+Rendering\+Control\+Plugin}, \hyperlink{a10140_a7c6f1997602ae0694744c6e38f5c6b60}{Hole\+Filler\+Plugin}, \hyperlink{a10272_a2c12c56b731d9f97feb6f5d6de24e0ca}{Mesh\+Repair\+Plugin}, \hyperlink{a11756_ae54a992199bd5fb6e9a97e69e2fee646}{Type\+Hexahedral\+Mesh\+Plugin}, \hyperlink{a10688_ad788c35cf3b8dd71a3be5ae5487a1d0c}{Topology\+Plugin}, \hyperlink{a11764_a537911a2160b10708efa5e099623bfd8}{Type\+Tetrahedral\+Mesh\+Plugin}, \hyperlink{a10988_a692f56c0ec34d1ec6a994444f989050b}{File\+P\+L\+Y\+Plugin}, \hyperlink{a10064_a913356537242ee7609a4902483a9d35e}{Color\+Plugin}, \hyperlink{a10128_ac8fe02c97095fb7505d1ea6914cc632a}{Deserialize\+Screenshot\+Metadata\+Plugin}, \hyperlink{a11076_a1f9d9da78be04d83b5dde8430e5bd034}{File\+S\+T\+L\+Plugin}, \hyperlink{a10976_a9cdc5eb63c465b5f001e1839bd2f4937}{File\+O\+M\+Plugin}, \hyperlink{a11196_aa68f374c3aabfeffb6b64a8bb648661c}{Selection\+Base\+Plugin}, \hyperlink{a10188_a729d5e50694f5dcfa9d191b9b1de2a9f}{Info\+Volume\+Mesh\+Object\+Plugin}, \hyperlink{a10572_a29ce37b91f07fb71a4f1b92486b09326}{Scripting\+Plugin}, \hyperlink{a10240_a398cffd4794ac9d8f7349f4b2c20e6b2}{Mesh\+Compare\+Plugin}, \hyperlink{a10932_a822c0db5fdaa1c6e7634b868b862744e}{File\+B\+V\+H\+Plugin}, \hyperlink{a10916_ac31695cf715a1244b9f0a73fe513c42b}{Vsi\+Plugin}, \hyperlink{a11968_a4ebab94596e92f4cb537699590bfd7df}{Type\+Skeleton\+Plugin}, \hyperlink{a10224_a5997e1f4711a29012b072f4c6373e6bb}{Mean\+Curvature\+Plugin}, \hyperlink{a10320_a44b42f415c1ad311a426805c6d12f110}{Primitives\+Generator\+Plugin}, \hyperlink{a10992_aad18e1cd5bf22cfd7d86a4c7b05566e4}{File\+Poly\+Line\+Plugin}, \hyperlink{a10568_a2f17a8b62d4f963ddf850f6402812986}{Ruler\+Plugin}, \hyperlink{a10216_a2b2bc210ddfd3b97ac521e7dd118c8d5}{Material\+Picker}, \hyperlink{a11300_ac441b281eb9c3070f24655729f788b9f}{Type\+Camera\+Plugin}, \hyperlink{a10232_ab2a48da158065dddc8d60bcaa873c4d7}{Merge\+Plugin}, \hyperlink{a07160_a563f0454d1b416932c46a9288db2f57e}{Smoother\+Plugin}, \hyperlink{a11068_a2338158a617e5eab7e30dd78ee4a162b}{File\+S\+K\+L\+Plugin}, \hyperlink{a11072_a5ba131254a550447406c910319668d32}{File\+S\+P\+H\+Plugin}, \hyperlink{a10984_a087b839e0e9994dc0c49b92006c05f42}{File\+Pla\+Plugin}, \hyperlink{a11836_a115e475bc1496cda52967b56a26427c8}{Type\+Poly\+Line\+Plugin}, \hyperlink{a10940_a38c3831ec0144ecd1f1972b1e3e6df52}{File\+Height\+Field\+P\+N\+G\+Plugin}, \hyperlink{a11976_a1210e05dad133a56af7c037c963ee7fa}{Type\+Sphere\+Plugin}, \hyperlink{a10972_a27ae71db5d86e8e2ea3f95e49fb8296e}{File\+View\+Plugin}, \hyperlink{a11384_a4b4badc4c24c26604e6928720c700e0e}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{a11392_aca93e4040edfd38d77d88efbc229ba65}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{a11840_aa8628da6fb6979ad50a7ef6e0fc1577e}{Type\+Poly\+Line\+Collection\+Plugin}, \hyperlink{a11856_ae61e3947496edb5c0c0f447e2e3fb190}{Type\+Qt\+Widget\+Plugin}, \hyperlink{a10248_ad39c9f5b7e6e4a4254b79a915c2bac30}{Mesh\+Convert\+Plugin}, \hyperlink{a11064_aad3883c0444233783a2cc66ee1e2112a}{File\+Script\+Plugin}, \hyperlink{a11780_a55311449bc7367a290c24b0d3c0edb1a}{Type\+Plane\+Plugin}, \hyperlink{a10952_ae6f52c3a8f935b3986eab91986594d0b}{File\+Light\+Plugin}, \hyperlink{a10136_a9902554b900f81b0fb17c5a43fb1164d}{Gauss\+Curvature\+Plugin}, \hyperlink{a10624_ad68c4c3398dac30faff157bc6deef46a}{Slice\+Plugin}, \hyperlink{a11312_a6b170feb5b4bb942ec9dd1a473208c1a}{Type\+Coordsys\+Plugin}, \hyperlink{a10192_aa72b64f032a4fae4c49705cf5c02b549}{I\+N\+I\+Plugin}, \hyperlink{a11112_ac1893a33b99073c90850d1671e1b43d6}{Renderer}, \hyperlink{a10212_ac1fe1ea3540d2a2f31e273651e6582cd}{Laplace\+Length\+Plugin}, \hyperlink{a11132_a1ad6d15e644f42602b8e87d5ee77f867}{Depth\+Peeling}, \hyperlink{a11148_a2a38c15a5963db622171edee7188e8c2}{Depth\+Peeling\+Plugin}, \hyperlink{a11160_a463499a4f9e1ff27ff23dd32df9245ce}{S\+S\+A\+O\+Plugin}, \hyperlink{a11112_ac1893a33b99073c90850d1671e1b43d6}{Renderer}, \hyperlink{a10332_a7b186a1e420ce97f2528b836b8938bef}{Print\+Plugin}, \hyperlink{a10228_a69186154e26238444e3b6bda73e9b3b7}{Mem\+Info\+Plugin}, \hyperlink{a10040_a1121818f8e5e3b89f737808116199862}{Plugin\+Align\+Meshes}, \hyperlink{a10652_a72c23f19bc5a77683d05d5e2d3d593ff}{Test\+Plugin}, \hyperlink{a11096_a22bfc8bf7c60dc4d040aa586fa3bd080}{Post\+Processor\+Grayscale\+Plugin}, \hyperlink{a11108_a2b2e13375aca414a54688a4465fb2d4c}{Post\+Processor\+Sobel\+Plugin}, \hyperlink{a11172_a3a4e234ad6de13fadd4bc0af10eef36b}{Toon\+Renderer}, \hyperlink{a07152_ac79d05c55652fa4e2478def1b8b6d836}{Mouse\+And\+Key\+Plugin}, \hyperlink{a11092_a614f3c84afc8f8de8b160ae91564a20b}{Post\+Processor\+Depth\+Image\+Plugin}, \hyperlink{a11144_a9aeb6898729ac049236e6f855dc2ef91}{Normal\+Renderer}, \hyperlink{a11088_afcdc0d9dd574acbf4d17cf3505931cea}{Post\+Processor\+Anaglyph\+Plugin}, \hyperlink{a11100_a782d4f4a7a9fcd23d65f8a2e792568a6}{Post\+Processor\+Philips\+Stereo\+Plugin}, \hyperlink{a11156_a3c23c8631d5e4486ef93861b1d90a3c8}{Render\+Picking\+Plugin}, \hyperlink{a07160_a563f0454d1b416932c46a9288db2f57e}{Smoother\+Plugin}, and \hyperlink{a07156_ad40b437817dc50a20e424760ebd8163b}{Simple\+Plugin}.

\mbox{\Hypertarget{a06872_a2087c7acf96aa7c4ef44f0b4508745a8}\label{a06872_a2087c7acf96aa7c4ef44f0b4508745a8}} 
\index{Base\+Interface@{Base\+Interface}!exit@{exit}}
\index{exit@{exit}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{exit}{exit}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::exit (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}

This function is called when the application exits or when your plugin is about to be unloaded. Here you can clean up your plugin, delete local variables... 

Reimplemented in \hyperlink{a10072_a40a854cd092d3186ad4aaa0ec7a17bc7}{Components\+Plugin}.



Definition at line 337 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ab5e4702d75c03875efd5743555cb6675}\label{a06872_ab5e4702d75c03875efd5743555cb6675}} 
\index{Base\+Interface@{Base\+Interface}!get\+Current\+Renderer@{get\+Current\+Renderer}}
\index{get\+Current\+Renderer@{get\+Current\+Renderer}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{get\+Current\+Renderer()}{getCurrentRenderer()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::get\+Current\+Renderer (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+viewer,  }\item[{Q\+String \&}]{\+\_\+renderer\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get the current renderer for the given viewer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+viewer} & Id of the viewer to set the renderer for \\
\hline
{\em \+\_\+renderer\+Name} & Name of the renderer that is currently active \\
\hline
\end{DoxyParams}


Definition at line 328 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a705fdf2e221af47198aed689b0da7a32}\label{a06872_a705fdf2e221af47198aed689b0da7a32}} 
\index{Base\+Interface@{Base\+Interface}!initialize\+Plugin@{initialize\+Plugin}}
\index{initialize\+Plugin@{initialize\+Plugin}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{initialize\+Plugin}{initializePlugin}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::initialize\+Plugin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Initialize Plugin. 

This slot is called if the plugin is loaded and has to be initialized. All initialization stuff in this slot has to stay inside the plugin, no external signals are allowed here (and will be ignored). Don\textquotesingle{}t create any objects via \hyperlink{a06173}{Plugin\+Functions} here. Use the \hyperlink{a06872_a5f240478907447bf172618bd4205df65}{plugins\+Initialized()} slot for external initialization. After execution of this slot your plugin should be fully functional. Only gui elements may be uninitialized and should be created in \hyperlink{a06872_a5f240478907447bf172618bd4205df65}{plugins\+Initialized()}. 

Reimplemented in \hyperlink{a11080_ae016e37354a17a92dc32b7bbf478b55f}{File\+V\+T\+K\+Plugin}, \hyperlink{a10956_a101516a93ea5036f2a221ffd2ae0466b}{File\+O\+B\+J\+Plugin}, \hyperlink{a10964_a147d107d0ad0c86dcc080f44fa007b84}{File\+O\+F\+F\+Plugin}, \hyperlink{a10140_afe61659d195b438e398ff90e3f315010}{Hole\+Filler\+Plugin}, \hyperlink{a10932_a65798d5318a59ee84584ce6f1665ad46}{File\+B\+V\+H\+Plugin}, \hyperlink{a11076_a2054fd6039fc76cef8d814044300a9e2}{File\+S\+T\+L\+Plugin}, \hyperlink{a10988_abcf76150025d9b9860e253391fab163a}{File\+P\+L\+Y\+Plugin}, \hyperlink{a10992_ad7cdfe3d9402f2e58691dc94020d9d4a}{File\+Poly\+Line\+Plugin}, \hyperlink{a10976_abfd00e1e46651ec47c162417ee4d139a}{File\+O\+M\+Plugin}, \hyperlink{a11068_a289338b83efa2d91b0130c0030d7b73e}{File\+S\+K\+L\+Plugin}, \hyperlink{a11072_aa6a94b4eae6fffb161eae696963262e1}{File\+S\+P\+H\+Plugin}, \hyperlink{a10984_a1740a75554b7ebab87c2e3cc6cff9bff}{File\+Pla\+Plugin}, \hyperlink{a10972_a2c21af0a47b7e7a1c7503bcdd4f03685}{File\+View\+Plugin}, \hyperlink{a10940_acf44d435c35513f8a91b58c3be389777}{File\+Height\+Field\+P\+N\+G\+Plugin}, and \hyperlink{a10952_af116097f295a3f4f55a1acf4c56a1d5c}{File\+Light\+Plugin}.



Definition at line 83 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a2b351aa6ef0eb368bce735e243235958}\label{a06872_a2b351aa6ef0eb368bce735e243235958}} 
\index{Base\+Interface@{Base\+Interface}!name@{name}}
\index{name@{name}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily virtual Q\+String Base\+Interface\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Return a name for the plugin. 

This Function has to return the name of the plugin. 

Implemented in \hyperlink{a10308_a0460ee12e87fada8b5d786a9d2679994}{Poly\+Line\+Plugin}, \hyperlink{a10288_addc49b49483e336b16e8910eb663f595}{Move\+Plugin}, \hyperlink{a11080_a78856603b7ebcb858f7c44fb0c7a8f35}{File\+V\+T\+K\+Plugin}, \hyperlink{a11244_a116b99ecb484f3d18fcb453d9c5ca0e6}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{a10616_aff1264a3135488e2100001f0c77685d5}{Skeleton\+Editing\+Plugin}, \hyperlink{a10668_af9beb105ce7890de96bb8c31f1c2178c}{Texture\+Control\+Plugin}, \hyperlink{a10108_a99dfe62c38a5f59f4963b2a3b6b69b8b}{Decimater\+Plugin}, \hyperlink{a11248_a95d2f7995a251a4aa30c54d803f9e3b8}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{a10460_a545ada3c814840cd91ee807cadcf4219}{Property\+Vis\+Plugin}, \hyperlink{a10048_aaec31b37ba14860a2dc119a6a4230c98}{Backup\+Plugin}, \hyperlink{a11212_ab1bc6589f8c8606bf9abd3aa2b7bfc3c}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{a11216_ab7bf4edd4dbec75ad4c24b1083e39bab}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{a10644_a61f8d7c4700bcb7fc3fce8c298d00339}{Subdivider\+Plugin}, \hyperlink{a10956_a8a077331b1474e81ab0c761e76f41a31}{File\+O\+B\+J\+Plugin}, \hyperlink{a11236_a846be68a996b1352e97336664c24e865}{Object\+Selection\+Plugin}, \hyperlink{a11240_a7ae7d3f19a7543b1a0f02b03d664c955}{Poly\+Line\+Selection\+Plugin}, \hyperlink{a11340_ac3656f160710fbb6b38fcfe06b183caa}{Type\+Light\+Plugin}, \hyperlink{a10612_a228a18ef37d3664a1dd05fae084e6147}{Skeletal\+Animation\+Plugin}, \hyperlink{a10076_abdf774012571ff5e3fe0054ac93b5c0b}{Data\+Control\+Plugin}, \hyperlink{a10700_ad2e58731f9f56c18013778baa8123e28}{View\+Control\+Plugin}, \hyperlink{a12060_ae4ef4965b3a7e74a1f6b9bc0d7c31b5c}{Type\+Splat\+Cloud\+Plugin}, \hyperlink{a10168_a99a48943121ba1aee1eb3aed38e2fa5a}{Info\+Mesh\+Object\+Plugin}, \hyperlink{a10996_a47ff0b339a1218d7e5d0f77a07675705}{File\+P\+T\+S\+Plugin}, \hyperlink{a10072_aa0a9f89f82104fa69823b59a7fbc9f8c}{Components\+Plugin}, \hyperlink{a07160_a47e0b61cc8695c3cd5e1abdd62ab0d69}{Smoother\+Plugin}, \hyperlink{a10964_a863692ed3d9b301994c35cd948eb05ae}{File\+O\+F\+F\+Plugin}, \hyperlink{a10196_a2b068c21e4f232f496589511f8949247}{Isotropic\+Remesher\+Plugin}, \hyperlink{a10180_a25c564717a33ecc3af5129bb612ce2cb}{Info\+Skeleton\+Object\+Plugin}, \hyperlink{a10552_aa1252cbfa7985c5ba5e71a0527dfb40d}{Remesher\+Plugin}, \hyperlink{a11284_ac16ce14045c2caef7bd0681bf3f72a12}{Type\+B\+Spline\+Curve\+Plugin}, \hyperlink{a11288_a60847d7af72c8432cc7361f20892b146}{Type\+B\+Spline\+Surface\+Plugin}, \hyperlink{a10924_a78675238db66bd2d9c3aba3a7ab5ca3a}{File\+Bundle\+Plugin}, \hyperlink{a10640_a130a7c7a6e57efa8702f3d98ff61a42d}{Splat\+Cloud\+Rendering\+Control\+Plugin}, \hyperlink{a10140_a39daaa650793d21f4ce4f5c43f547c2a}{Hole\+Filler\+Plugin}, \hyperlink{a10980_abeb50c83dc15ecf542feca5f7397b445}{File\+Open\+Volume\+Mesh\+Plugin}, \hyperlink{a10688_a69e01d6d670a4988375fe41ceb7f267c}{Topology\+Plugin}, \hyperlink{a11760_a3b865f61bb14705891499a257fff5dbd}{Type\+Polyhedral\+Mesh\+Plugin}, \hyperlink{a10272_ae87091ad7ccf4acefd2c42362191d2b0}{Mesh\+Repair\+Plugin}, \hyperlink{a10988_abd29e2c0bbf50182c9f775f213dd0a13}{File\+P\+L\+Y\+Plugin}, \hyperlink{a11756_ad45c629951d33d7e76363b9cd8a27757}{Type\+Hexahedral\+Mesh\+Plugin}, \hyperlink{a10064_aa3eb4661b6c9e1725f0b2f34cfc92893}{Color\+Plugin}, \hyperlink{a11076_ab0e99d2b3cd3e0e899fb12f61bfe9b5a}{File\+S\+T\+L\+Plugin}, \hyperlink{a11764_a7d08d659051981e9ef22a03aef01c967}{Type\+Tetrahedral\+Mesh\+Plugin}, \hyperlink{a10976_a9599a8f3485bf459453620e436d473d2}{File\+O\+M\+Plugin}, \hyperlink{a11196_a3347f0c468b0a230608db2c2c7e42290}{Selection\+Base\+Plugin}, \hyperlink{a10128_a6ec8f40d95c65132b662795dc189756b}{Deserialize\+Screenshot\+Metadata\+Plugin}, \hyperlink{a10572_a4ad87327eaa00cb215c3558fc71b8258}{Scripting\+Plugin}, \hyperlink{a10188_a0075c014c64e652a21030a926c193ffb}{Info\+Volume\+Mesh\+Object\+Plugin}, \hyperlink{a10240_a19955be82757ccd205f057f24583f918}{Mesh\+Compare\+Plugin}, \hyperlink{a10932_a0ff3647d22aa27eeeefb83fda2c1be09}{File\+B\+V\+H\+Plugin}, \hyperlink{a11968_a039bc1b729928380bbf31c7723722ebf}{Type\+Skeleton\+Plugin}, \hyperlink{a10916_afeafde7cf993d4460d25abba9ce9a953}{Vsi\+Plugin}, \hyperlink{a10224_ac235b3d2e6654377e7f363d507f35c9b}{Mean\+Curvature\+Plugin}, \hyperlink{a10320_a5c63aea78075945a29d874a17077e11e}{Primitives\+Generator\+Plugin}, \hyperlink{a10992_a50449e47fc3b055385b25c469e047848}{File\+Poly\+Line\+Plugin}, \hyperlink{a10568_aca00f4615ed3161e1f3413172be12654}{Ruler\+Plugin}, \hyperlink{a10216_a5bb7c1ae05f7417d3dcdce7c2bcfcf99}{Material\+Picker}, \hyperlink{a11300_aa11f9515cacdbe80f8537f4756b0bdf9}{Type\+Camera\+Plugin}, \hyperlink{a10232_a5fae896e1ccae5b89ac481e9930d9dd8}{Merge\+Plugin}, \hyperlink{a07160_a47e0b61cc8695c3cd5e1abdd62ab0d69}{Smoother\+Plugin}, \hyperlink{a11068_af373b76bb573717245066eeb36328f98}{File\+S\+K\+L\+Plugin}, \hyperlink{a11072_a91d717f7f1a2131bde29774d2ae5ad44}{File\+S\+P\+H\+Plugin}, \hyperlink{a10984_a3ee4740268cd50b8725e8ee82fc3c5c9}{File\+Pla\+Plugin}, \hyperlink{a11836_a4bf4fe141c3c586eab5f1268c54eca15}{Type\+Poly\+Line\+Plugin}, \hyperlink{a10940_a43a69a97562cbac0194464c538de65fe}{File\+Height\+Field\+P\+N\+G\+Plugin}, \hyperlink{a11976_a738f499c56f651d3d3b8405813f42cbd}{Type\+Sphere\+Plugin}, \hyperlink{a10972_a7af91f0a3a12eeb2c85fe7442b854dbc}{File\+View\+Plugin}, \hyperlink{a11384_aff2d2b5779370cdf15ec72be1ebbc130}{Type\+Poly\+Mesh\+Plugin}, \hyperlink{a11392_a207e48297bb58ee906cbbafee699327a}{Type\+Triangle\+Mesh\+Plugin}, \hyperlink{a11840_a9d8dbd7428179fbc9bcc862286e15a77}{Type\+Poly\+Line\+Collection\+Plugin}, \hyperlink{a11856_a6096b8d037187204e6efdb69bed527a0}{Type\+Qt\+Widget\+Plugin}, \hyperlink{a10248_ab934f29669d78874f85c2f56f6653a86}{Mesh\+Convert\+Plugin}, \hyperlink{a11064_adc2ed8559772261180528dc6237107d9}{File\+Script\+Plugin}, \hyperlink{a11780_a868dda40bc2b3a678360ae00ae4fc87d}{Type\+Plane\+Plugin}, \hyperlink{a10952_a06e08c205fc5b17510012989b2a92158}{File\+Light\+Plugin}, \hyperlink{a10136_aa4c9837c94769fa6ca0428b4e3b4e417}{Gauss\+Curvature\+Plugin}, \hyperlink{a10624_acf3520462000d44be4ff38cc87393cc1}{Slice\+Plugin}, \hyperlink{a11312_aedbd88853873c521bbb35045c8a29b41}{Type\+Coordsys\+Plugin}, \hyperlink{a11112_a63f354f3d3984c6e4e3e4f491d92f6cf}{Renderer}, \hyperlink{a10212_a576a0eaa6f239a3e4a65ee7781b3c3a2}{Laplace\+Length\+Plugin}, \hyperlink{a11132_a2f69e86c77935db464b81c1ee79081ed}{Depth\+Peeling}, \hyperlink{a11148_a025b9c0b5a05a1a1af9aea468c1ed5f5}{Depth\+Peeling\+Plugin}, \hyperlink{a11160_aa8252ad9a46aa932e59f598b12cc3d28}{S\+S\+A\+O\+Plugin}, \hyperlink{a11112_a63f354f3d3984c6e4e3e4f491d92f6cf}{Renderer}, \hyperlink{a10332_afb2a497848c87781be1becb14355fc32}{Print\+Plugin}, \hyperlink{a10228_a8d568e00f716f6e9c37ac7b95b210ce3}{Mem\+Info\+Plugin}, \hyperlink{a10040_a7b1e8dff7d13f7385e301270fcacd3b7}{Plugin\+Align\+Meshes}, \hyperlink{a10652_a3a5b204aba2e47353637366ce8fd4d8b}{Test\+Plugin}, \hyperlink{a11096_aa29360ec8955bcd4f611743ddc0281a4}{Post\+Processor\+Grayscale\+Plugin}, \hyperlink{a11108_a0b94baa22b55f800d862da79b77b243a}{Post\+Processor\+Sobel\+Plugin}, \hyperlink{a11172_a6435954b9b8d3360f539c8e033d2452d}{Toon\+Renderer}, \hyperlink{a07152_abcc44e215038848f5b0a2ba8a72983ea}{Mouse\+And\+Key\+Plugin}, \hyperlink{a11092_a343a94dbb4d5ee42d4742c9afb960063}{Post\+Processor\+Depth\+Image\+Plugin}, \hyperlink{a11144_aeec612c5c08e9c80287d7dfcc85ec8e3}{Normal\+Renderer}, \hyperlink{a11088_a0ddc96f56f1fe794ea79d3c972a0746f}{Post\+Processor\+Anaglyph\+Plugin}, \hyperlink{a11100_a4063f78143824e934c28845edb2a94ad}{Post\+Processor\+Philips\+Stereo\+Plugin}, \hyperlink{a11156_adbd1c17a44e9877d3a676605a9df9c84}{Render\+Picking\+Plugin}, \hyperlink{a07160_a47e0b61cc8695c3cd5e1abdd62ab0d69}{Smoother\+Plugin}, and \hyperlink{a07156_a37d0aaa86a289cba0daadb8ff375d795}{Simple\+Plugin}.

\mbox{\Hypertarget{a06872_a38b332c6d6faf5f1c6336199e7a9933e}\label{a06872_a38b332c6d6faf5f1c6336199e7a9933e}} 
\index{Base\+Interface@{Base\+Interface}!node\+Visibility\+Changed@{node\+Visibility\+Changed}}
\index{node\+Visibility\+Changed@{node\+Visibility\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{node\+Visibility\+Changed()}{nodeVisibilityChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::node\+Visibility\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



A scenegraph node has been shown or hidden. 

Emit this Signal, if you changed the visibility of a scenegraph node directly (not via object-\/$>$show/hide). This is required to reset the near and far plane for the viewers to provide an optimal view. Use the id of the object the node is attached to or -\/1 if it is not connected to an object. 

Definition at line 169 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a79ba17f1f9aca08b95ec56f85d2d1204}\label{a06872_a79ba17f1f9aca08b95ec56f85d2d1204}} 
\index{Base\+Interface@{Base\+Interface}!nogui\+Supported@{nogui\+Supported}}
\index{nogui\+Supported@{nogui\+Supported}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{nogui\+Supported()}{noguiSupported()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::nogui\+Supported (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Using this function you can inform the core that your plugin can run without creating a widget. If your plugin does not implement this function, it will not be loaded in scripting mode without gui. You don\textquotesingle{}t have to do anything in this function. 

Reimplemented in \hyperlink{a10552_aa031f32eed1c8b2dfa78fce5d4c6371e}{Remesher\+Plugin}, \hyperlink{a11080_a30b8998c3040ee10fc2f399fc82d9749}{File\+V\+T\+K\+Plugin}, \hyperlink{a10196_ac63cae010c7755a0707d6c345f2bb1c4}{Isotropic\+Remesher\+Plugin}, \hyperlink{a10956_a603f46c92257c831af90129c277f30e4}{File\+O\+B\+J\+Plugin}, \hyperlink{a10964_a1a2104a4c27d80771e21db0fc5c971a9}{File\+O\+F\+F\+Plugin}, \hyperlink{a10932_ad1fb04851012aa8f2bcfdd26c987cd68}{File\+B\+V\+H\+Plugin}, \hyperlink{a11076_ad4f37953073a029797a3bcfeb8b686f7}{File\+S\+T\+L\+Plugin}, \hyperlink{a10988_a8eeef0ab8fbad6e816d8fda495524dbd}{File\+P\+L\+Y\+Plugin}, \hyperlink{a10992_aaa49c07eaac73eb81bcc0e467fb9c56c}{File\+Poly\+Line\+Plugin}, \hyperlink{a10976_ae16d447a909fa95ba7d84be744a1bf59}{File\+O\+M\+Plugin}, \hyperlink{a11068_a7a1c35788028722bb9c7d56ed0a1b7f2}{File\+S\+K\+L\+Plugin}, \hyperlink{a11072_a690c18056f9093f5f9f46564e9ce4a74}{File\+S\+P\+H\+Plugin}, \hyperlink{a10984_a43d3dc2c6aa3a2a15745af43812b3919}{File\+Pla\+Plugin}, \hyperlink{a10972_a1954cf20fa92107983d2db79cfda9aa5}{File\+View\+Plugin}, \hyperlink{a10940_a8c179632822b8553bdcfba46fb78ffa3}{File\+Height\+Field\+P\+N\+G\+Plugin}, and \hyperlink{a10952_af1ad1bc560c3584313d5050f2f3b30a6}{File\+Light\+Plugin}.



Definition at line 343 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a5f240478907447bf172618bd4205df65}\label{a06872_a5f240478907447bf172618bd4205df65}} 
\index{Base\+Interface@{Base\+Interface}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{plugins\+Initialized()}{pluginsInitialized()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::plugins\+Initialized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Initialize Plugin step 2. 

This slot is called if all plugins are loaded and the core is ready. Afterwards you can already send signals to other plugins and the core (e.\+g. adding global textures). \begin{DoxyNote}{Note}
Do not create objects via add\+Empty or load objects in this slot, as the rendering system is not ready yet. 
\end{DoxyNote}


Reimplemented in \hyperlink{a11340_a10d87f7a4fc4a91566bce619326f97f6}{Type\+Light\+Plugin}, \hyperlink{a10072_a538edd80c8d6fa0d6ff850c746f2ec9b}{Components\+Plugin}, \hyperlink{a10140_a4987dca0445d72c619750814a82316b9}{Hole\+Filler\+Plugin}, and \hyperlink{a11300_a11749627094f7041ddb280c960ba8da0}{Type\+Camera\+Plugin}.



Definition at line 91 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a2e7b493a68026d19c2b5f97d2bda4a7c}\label{a06872_a2e7b493a68026d19c2b5f97d2bda4a7c}} 
\index{Base\+Interface@{Base\+Interface}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{plugins\+Initialized()}{pluginsInitialized()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::plugins\+Initialized (\begin{DoxyParamCaption}\item[{Q\+Vector$<$ Q\+Pair$<$ Q\+String, Q\+String $>$$>$ const \&}]{\+\_\+plugin\+Options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Initialize Plugin step 2 alternative. 

This slot is similar to the vanilla version without parameters but additionally passes plugin command line options as key-\/value pairs. For passing command line options, use e.\+g.\+: Open\+Flipper -\/o key1=value1 -\/p key2=value2 or Open\+Flipper --pluginoptions key1=value1;key2=value2 

Definition at line 101 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a77991fde5d0ba3c84aee93fdebd9f81b}\label{a06872_a77991fde5d0ba3c84aee93fdebd9f81b}} 
\index{Base\+Interface@{Base\+Interface}!set\+Renderer@{set\+Renderer}}
\index{set\+Renderer@{set\+Renderer}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{set\+Renderer}{setRenderer}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::set\+Renderer (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+viewer,  }\item[{Q\+String}]{\+\_\+renderer\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Set a renderer for the given viewer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+viewer} & Id of the viewer to set the renderer for \\
\hline
{\em \+\_\+renderer\+Name} & Name of the renderer to be used \\
\hline
\end{DoxyParams}


Definition at line 321 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a0a559d28f41b730c5130ffc84f4a9480}\label{a06872_a0a559d28f41b730c5130ffc84f4a9480}} 
\index{Base\+Interface@{Base\+Interface}!set\+Slot\+Description@{set\+Slot\+Description}}
\index{set\+Slot\+Description@{set\+Slot\+Description}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{set\+Slot\+Description}{setSlotDescription}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::set\+Slot\+Description (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+slot\+Name,  }\item[{Q\+String}]{\+\_\+slot\+Description,  }\item[{Q\+String\+List}]{\+\_\+parameters,  }\item[{Q\+String\+List}]{\+\_\+descriptions }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Set a description for a public slot. 

public slots of each plugin are automatically available for scripting. ~\newline
Use this Signal to add a description for your slot so that everyone knows what it is used for. ~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+slot\+Name} & the name of the slot \\
\hline
{\em \+\_\+slot\+Description} & a description for the slot \\
\hline
{\em \+\_\+parameters} & list of parameters \\
\hline
{\em \+\_\+descriptions} & list of descriptions for the parameters (\+\_\+descriptions\mbox{[}i\mbox{]} corresponds to \+\_\+parameters\mbox{[}i\mbox{]}) \\
\hline
\end{DoxyParams}


Definition at line 305 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_aa00a3111da5d92c9d001a0a8272c5a91}\label{a06872_aa00a3111da5d92c9d001a0a8272c5a91}} 
\index{Base\+Interface@{Base\+Interface}!slot\+All\+Cleared@{slot\+All\+Cleared}}
\index{slot\+All\+Cleared@{slot\+All\+Cleared}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+All\+Cleared()}{slotAllCleared()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+All\+Cleared (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called if the whole scene is cleared. 

This slot is called if the main application cleared the whole scene. No objects will remain in memory and all destructors of the objects are called before this signal is emitted. 

Reimplemented in \hyperlink{a11340_a2ac204fe7abd155b8d9de19b67ab41b2}{Type\+Light\+Plugin}.



Definition at line 208 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ab1368b9bfb223952913475d76883b009}\label{a06872_ab1368b9bfb223952913475d76883b009}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Draw\+Mode\+Changed@{slot\+Draw\+Mode\+Changed}}
\index{slot\+Draw\+Mode\+Changed@{slot\+Draw\+Mode\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Draw\+Mode\+Changed()}{slotDrawModeChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Draw\+Mode\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+viewer\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



A viewer changed its draw mode. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+viewer\+Id} & Id of the viewer that changed its draw mode \\
\hline
\end{DoxyParams}


Definition at line 262 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_aa7832a19f7fc5be5280035f688583fda}\label{a06872_aa7832a19f7fc5be5280035f688583fda}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Object\+Properties\+Changed@{slot\+Object\+Properties\+Changed}}
\index{slot\+Object\+Properties\+Changed@{slot\+Object\+Properties\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Object\+Properties\+Changed()}{slotObjectPropertiesChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Object\+Properties\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Object properties have been changed. 

This slot is called if the object properties (e.\+g. name ) have changed The id of the object is given as a parameter. If multiple or all objects have changed, the id will be -\/1. 

Definition at line 235 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ac8e436c6df44130c1696069754bfc685}\label{a06872_ac8e436c6df44130c1696069754bfc685}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Object\+Selection\+Changed@{slot\+Object\+Selection\+Changed}}
\index{slot\+Object\+Selection\+Changed@{slot\+Object\+Selection\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Object\+Selection\+Changed()}{slotObjectSelectionChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Object\+Selection\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



The active object has changed. 

This slot is called by the main application if the current selection of an object has changed.~\newline
This means that the selection of source / target objects has changed. Additionally you get the id of the object that has been changed or -\/1 if all objects have been modified. 

Definition at line 217 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ae58a2d95eae6eddf5df443beb20f3c44}\label{a06872_ae58a2d95eae6eddf5df443beb20f3c44}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Object\+Updated@{slot\+Object\+Updated}}
\index{slot\+Object\+Updated@{slot\+Object\+Updated}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Object\+Updated}{slotObjectUpdated}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Object\+Updated (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



An object has been updated by another plugin. 

This slot is called by the main application if the number or status of existing objects changed or if an existing object has been changed. This could mean, that objects are added or deleted or that an existing object with the given id has been modified. If you store local information about one of these Objects, you should check if its still valid!~\newline
Don\textquotesingle{}t emit \hyperlink{a06872_a287b9cdde5984fae3e19b051284cdaa2}{Base\+Interface\+::updated\+Object(int)} in this slot as this causes an endless Loop!! You don\textquotesingle{}t need to call update\+View as the core triggers a redraw itself.~\newline
 This slot will be executed on the main thread.~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+identifier} & Identifier of the updated/new object or -\/1 if one is deleted. \\
\hline
\end{DoxyParams}


Definition at line 185 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a1bd91e2e79467c2fff4d595fcdaffdf3}\label{a06872_a1bd91e2e79467c2fff4d595fcdaffdf3}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Object\+Updated@{slot\+Object\+Updated}}
\index{slot\+Object\+Updated@{slot\+Object\+Updated}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Object\+Updated()}{slotObjectUpdated()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Object\+Updated (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier,  }\item[{const \hyperlink{a07096}{Update\+Type} \&}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



An object has been updated by another plugin. 

This slot is called by the main application if the number or status of existing objects changed or if an existing object has been changed. This could mean, that objects are added or deleted or that an existing object with the given id has been modified. If you store local information about one of these Objects, you should check if its still valid!~\newline
Don\textquotesingle{}t emit \hyperlink{a06872_a287b9cdde5984fae3e19b051284cdaa2}{Base\+Interface\+::updated\+Object(int)} in this slot as this causes an endless Loop!! You don\textquotesingle{}t need to call update\+View as the core triggers a redraw itself.~\newline
 This slot will be executed on the main thread.~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+identifier} & Identifier of the updated/new object or -\/1 if one is deleted. \\
\hline
{\em \+\_\+type} & the type states which part of the object (topology, selection, ..) had been updated \\
\hline
\end{DoxyParams}


Definition at line 200 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ae61fc95417f697bed1b5b5663cdf1d05}\label{a06872_ae61fc95417f697bed1b5b5663cdf1d05}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Scene\+Drawn@{slot\+Scene\+Drawn}}
\index{slot\+Scene\+Drawn@{slot\+Scene\+Drawn}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Scene\+Drawn()}{slotSceneDrawn()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Scene\+Drawn (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



triggered after a scene has been drawn 

This slot will be triggered every time, the Open\+Gl draw of one frame is completed. Every time you emit an update\+View, a scene redraw will be triggered (except, if the minimal time between two frames is not yet reached). After drawing the scene, the core will call this slot to inform the plugins, that a new view is visible.

You can use this slot, if you need to control special updates in your plugin, that react on the fps. 

Definition at line 256 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a0e44db8563463a86bd9f125d3cdf7fc2}\label{a06872_a0e44db8563463a86bd9f125d3cdf7fc2}} 
\index{Base\+Interface@{Base\+Interface}!slot\+View\+Changed@{slot\+View\+Changed}}
\index{slot\+View\+Changed@{slot\+View\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+View\+Changed()}{slotViewChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+View\+Changed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



View has changed. 

This slot is called when the view in one of the viewers changed ( Viewing direction/viewer position ) !! Be careful to not change the view in this slot !! !! This will of course lead to an endless loop !! 

Definition at line 244 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_aca92d1efce421f6a6d4272083f6631d7}\label{a06872_aca92d1efce421f6a6d4272083f6631d7}} 
\index{Base\+Interface@{Base\+Interface}!slot\+Visibility\+Changed@{slot\+Visibility\+Changed}}
\index{slot\+Visibility\+Changed@{slot\+Visibility\+Changed}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{slot\+Visibility\+Changed()}{slotVisibilityChanged()}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::slot\+Visibility\+Changed (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



An object has been shown or hidden. 

This slot is called if an object is shown or hidden. The id of the object is given as a parameter. If multiple or all objects have changed, the id will be -\/1. 

Definition at line 226 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a287b9cdde5984fae3e19b051284cdaa2}\label{a06872_a287b9cdde5984fae3e19b051284cdaa2}} 
\index{Base\+Interface@{Base\+Interface}!updated\+Object@{updated\+Object}}
\index{updated\+Object@{updated\+Object}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{updated\+Object()}{updatedObject()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::updated\+Object (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



An object has been changed or added by this plugin. 

Emit this Signal, if you updated any part of an object.~\newline
 If you changed the element itself (geometry, topology,..) you also have to emit this signal.~\newline
 Don\textquotesingle{}t emit this Signal in \hyperlink{a06872_ae58a2d95eae6eddf5df443beb20f3c44}{Base\+Interface\+::slot\+Object\+Updated()} as this causes an endless Loop!! Give the id of the new object as parameter or -\/1 if you updated all objects or deleted an object. For performance reasons try to always give the id and not -\/1!~\newline
 This signal can be called from any thread.~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object or -\/1 if referring to all or deleted objects. \\
\hline
\end{DoxyParams}


Definition at line 146 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a49a38de5185d75fc95e7932b06416b55}\label{a06872_a49a38de5185d75fc95e7932b06416b55}} 
\index{Base\+Interface@{Base\+Interface}!updated\+Object@{updated\+Object}}
\index{updated\+Object@{updated\+Object}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{updated\+Object()}{updatedObject()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::updated\+Object (\begin{DoxyParamCaption}\item[{int}]{\+\_\+identifier,  }\item[{const \hyperlink{a07096}{Update\+Type} \&}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



An object has been changed or added by this plugin. 

Emit this Signal, if you updated any part of an object.~\newline
 If you changed the element itself (geometry, topology,..) you also have to emit this signal.~\newline
 Don\textquotesingle{}t emit this Signal in \hyperlink{a06872_ae58a2d95eae6eddf5df443beb20f3c44}{Base\+Interface\+::slot\+Object\+Updated()} as this causes an endless Loop!! Give the id of the new object as parameter or -\/1 if you updated all objects or deleted an object. For performance reasons try to always give the id and not -\/1!~\newline
 This signal can be called from any thread.~\newline
 
\begin{DoxyParams}{Parameters}
{\em \+\_\+identifier} & id of the object or -\/1 if referring to all or deleted objects. \\
\hline
{\em \+\_\+type} & the type states which part of the object (topology, selection, ..) has to be updated \\
\hline
\end{DoxyParams}


Definition at line 160 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_ace0d6b943ce94f48c40e8c0e17a8413e}\label{a06872_ace0d6b943ce94f48c40e8c0e17a8413e}} 
\index{Base\+Interface@{Base\+Interface}!update\+View@{update\+View}}
\index{update\+View@{update\+View}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{update\+View}{updateView}}
{\footnotesize\ttfamily virtual void Base\+Interface\+::update\+View (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Update current view in Main Application. 

Emit this Signal if the viewer widget in the main application should update the current view. If you do an updated\+Object the core will trigger an update itself and you don\textquotesingle{}t have to care about it.~\newline
 This signal can be called from any thread.~\newline


Definition at line 122 of file Base\+Interface.\+hh.

\mbox{\Hypertarget{a06872_a1223005ae02b961eb515823343811adc}\label{a06872_a1223005ae02b961eb515823343811adc}} 
\index{Base\+Interface@{Base\+Interface}!version@{version}}
\index{version@{version}!Base\+Interface@{Base\+Interface}}
\subsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily virtual Q\+String Base\+Interface\+::version (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Return a version string for your plugin. 

This function will be used to determine the current version of your plugin. Should have the form x.\+x.\+x ( you do not need to give that many subversions )

\begin{DoxyReturn}{Returns}
The version string of the plugin 
\end{DoxyReturn}


Reimplemented in \hyperlink{a10192_a97a23d30d4ac337063c09c624f3ca87b}{I\+N\+I\+Plugin}.



Definition at line 291 of file Base\+Interface.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/\hyperlink{a00014}{Base\+Interface.\+hh}\end{DoxyCompactItemize}
