\hypertarget{classTypeLightPlugin}{}\section{Type\+Light\+Plugin Class Reference}
\label{classTypeLightPlugin}\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}}
Inheritance diagram for Type\+Light\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=10.000000cm]{classTypeLightPlugin}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a56cf3bd33e7c7ebe4bbe534533066a02}\label{classTypeLightPlugin_a56cf3bd33e7c7ebe4bbe534533066a02}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_af3904e37fc59d27c204087c97d948667}\label{classTypeLightPlugin_af3904e37fc59d27c204087c97d948667}} 
void {\bfseries log} (\hyperlink{LoggingInterface_8hh_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a11c5b49c34209b4b062ea1f30400e7fa}\label{classTypeLightPlugin_a11c5b49c34209b4b062ea1f30400e7fa}} 
void {\bfseries log} (Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a4beef072a434a034cf12fa5a0845c1ec}\label{classTypeLightPlugin_a4beef072a434a034cf12fa5a0845c1ec}} 
void {\bfseries add\+Empty\+Object} (\hyperlink{classDataType}{Data\+Type} \+\_\+type, int \&\+\_\+id)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a374e813bbae6e9a748f7132d47ac000a}\label{classTypeLightPlugin_a374e813bbae6e9a748f7132d47ac000a}} 
void {\bfseries empty\+Object\+Added} (int \+\_\+id)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a491c4e8dd6a8ebd785dc404ef92109bd}\label{classTypeLightPlugin_a491c4e8dd6a8ebd785dc404ef92109bd}} 
void {\bfseries delete\+Object} (int \+\_\+id)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a1fb20b31236469daa1603d7991814442}\label{classTypeLightPlugin_a1fb20b31236469daa1603d7991814442}} 
void {\bfseries updated\+Object} (int \+\_\+id, const \hyperlink{classUpdateType}{Update\+Type} \&\+\_\+type)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a89c48b73d7426a58fc4498eb679ba84b}\label{classTypeLightPlugin_a89c48b73d7426a58fc4498eb679ba84b}} 
void {\bfseries update\+View} ()
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a3e71eddbedbc5e4430a25c3b03f7adff}\label{classTypeLightPlugin_a3e71eddbedbc5e4430a25c3b03f7adff}} 
void {\bfseries get\+Tool\+Bar} (Q\+String \+\_\+name, Q\+Tool\+Bar $\ast$\&\+\_\+toolbar)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_affdd5669e27b7725620a9baf87cd5424}\label{classTypeLightPlugin_affdd5669e27b7725620a9baf87cd5424}} 
void {\bfseries add\+Pick\+Mode} (const std\+::string \&\+\_\+mode)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_afd993a62f6d96607151e4c65f13d2deb}\label{classTypeLightPlugin_afd993a62f6d96607151e4c65f13d2deb}} 
void {\bfseries add\+Hidden\+Pick\+Mode} (const std\+::string \&\+\_\+mode)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_af282d0dce59a33e2a4baf5f5562533c4}\label{classTypeLightPlugin_af282d0dce59a33e2a4baf5f5562533c4}} 
void {\bfseries set\+Pick\+Mode\+Mouse\+Tracking} (const std\+::string \&\+\_\+mode, bool \+\_\+mouse\+Tracking)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ac76b496f11d5809a69c7d0543a02a15c}\label{classTypeLightPlugin_ac76b496f11d5809a69c7d0543a02a15c}} 
void {\bfseries set\+Pick\+Mode\+Toolbar} (const std\+::string \&\+\_\+mode, Q\+Tool\+Bar $\ast$\+\_\+toolbar)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{classTypeLightPlugin_ac3656f160710fbb6b38fcfe06b183caa}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{classTypeLightPlugin_a85165056ad7039a1fc02eb19b774a8cd}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a52c478896378f003e578d928c66fedaf}\label{classTypeLightPlugin_a52c478896378f003e578d928c66fedaf}} 
bool {\bfseries register\+Type} ()
\item 
int \hyperlink{classTypeLightPlugin_a68df1f138415cbd60f842bb707d219c2}{add\+Empty} ()
\begin{DoxyCompactList}\small\item\em Create an empty object. \end{DoxyCompactList}\item 
\hyperlink{classDataType}{Data\+Type} \hyperlink{classTypeLightPlugin_af6612a603253582d733aa9646ea2a4c2}{supported\+Type} ()
\begin{DoxyCompactList}\small\item\em Return your supported object type( e.\+g. D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+SH ) \end{DoxyCompactList}\item 
void \hyperlink{classTypeLightPlugin_a10d87f7a4fc4a91566bce619326f97f6}{plugins\+Initialized} ()
\begin{DoxyCompactList}\small\item\em Initialize Plugin step 2. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_ac5240192a8a2b399641056928c778ed0}\label{classTypeLightPlugin_ac5240192a8a2b399641056928c778ed0}} 
int {\bfseries add\+Default\+Light} (Q\+String \+\_\+name)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_aaa78dedecff6a6507d2ae23003c4125b}\label{classTypeLightPlugin_aaa78dedecff6a6507d2ae23003c4125b}} 
void {\bfseries show\+Reduced\+Ui} (bool reduced)
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ad0098badada1a28f83c41cb9ad5b40cc}\label{classTypeLightPlugin_ad0098badada1a28f83c41cb9ad5b40cc}} 
void {\bfseries nogui\+Supported} ()
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a8d4019404b77787d80353b4662efec89}\label{classTypeLightPlugin_a8d4019404b77787d80353b4662efec89}} 
void {\bfseries slot\+Light\+Mode\+Request} (bool \+\_\+checked)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a6823de13f993b684199270cf3b67f55b}\label{classTypeLightPlugin_a6823de13f993b684199270cf3b67f55b}} 
void {\bfseries slot\+Pick\+Mode\+Request} (Q\+Action $\ast$\+\_\+action)
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a2075862eff21e94c03f2f4ae80aa54ac}\label{classTypeLightPlugin_a2075862eff21e94c03f2f4ae80aa54ac}} 
void {\bfseries slot\+Set\+All\+Or\+Target} (bool \+\_\+checked)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classTypeLightPlugin_a91afc59db3b93c1a1aebe7b0accf8d46}{slot\+Pick\+Mode\+Changed} (const std\+::string \&\+\_\+pick\+Mode)
\begin{DoxyCompactList}\small\item\em The picking\+Mode has changed. \end{DoxyCompactList}\item 
void \hyperlink{classTypeLightPlugin_a2ac204fe7abd155b8d9de19b67ab41b2}{slot\+All\+Cleared} ()
\begin{DoxyCompactList}\small\item\em Called if the whole scene is cleared. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_afb9c54b9ed0109eda67bfa366cbd9db6}\label{classTypeLightPlugin_afb9c54b9ed0109eda67bfa366cbd9db6}} 
void {\bfseries add\+Default\+Lights} ()
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a1252115fd7cdeda03ceba7254b53f3e7}\label{classTypeLightPlugin_a1252115fd7cdeda03ceba7254b53f3e7}} 
void {\bfseries remove\+Default\+Lights} ()
\item 
void \hyperlink{classTypeLightPlugin_a51dd9fe9f9fc9a9bfa245349646ff4f6}{added\+Empty\+Object} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em An empty object has been added. \end{DoxyCompactList}\item 
void \hyperlink{classTypeLightPlugin_ac84ec76e6e79eab1cd45d10f9db37987}{object\+Deleted} (int \+\_\+id)
\begin{DoxyCompactList}\small\item\em An object was deleted. \end{DoxyCompactList}\item 
void \hyperlink{classTypeLightPlugin_abf80afaa0cc573439acf8bcdeef7e210}{slot\+Mouse\+Event\+Light} (Q\+Mouse\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em Mouse Event from main application ( Light Mode ) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a3fd17ed8a3c0206c0016113ed4cd52ef}\label{classTypeLightPlugin_a3fd17ed8a3c0206c0016113ed4cd52ef}} 
void \hyperlink{classTypeLightPlugin_a3fd17ed8a3c0206c0016113ed4cd52ef}{rotate\+Lights} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+axis, double \+\_\+angle)
\begin{DoxyCompactList}\small\item\em Rotate light sources. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a7b2ecd82c0eff16a1fdacf11ec279a0b}\label{classTypeLightPlugin_a7b2ecd82c0eff16a1fdacf11ec279a0b}} 
void \hyperlink{classTypeLightPlugin_a7b2ecd82c0eff16a1fdacf11ec279a0b}{rotate\+Light\+Direction} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+axis, double \+\_\+angle)
\begin{DoxyCompactList}\small\item\em Rotate spot light direction. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a432c99ef4170bfc1a28d6245cc779c32}\label{classTypeLightPlugin_a432c99ef4170bfc1a28d6245cc779c32}} 
void \hyperlink{classTypeLightPlugin_a432c99ef4170bfc1a28d6245cc779c32}{update\+Lights} ()
\begin{DoxyCompactList}\small\item\em Update light sources\textquotesingle{} positions. \end{DoxyCompactList}\item 
bool \hyperlink{classTypeLightPlugin_ab79ef1f1a8544a4145fe2881e61c7e84}{compute\+Click\+On\+Trackball} (const Q\+Point \&\+\_\+v2D, \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+click\+On\+Sphere, \hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Compute click on trackball containing the light source. \end{DoxyCompactList}\item 
bool \hyperlink{classTypeLightPlugin_a76fc35e641151ac052aba76c30072648}{compute\+Click\+On\+Light\+Trackball} (const Q\+Point \&\+\_\+v2D, \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+click\+On\+Sphere, \hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Compute click on trackball of light source. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a9d18254f7e56f5a44b5cd20ffcdfbf3a}\label{classTypeLightPlugin_a9d18254f7e56f5a44b5cd20ffcdfbf3a}} 
float \hyperlink{classTypeLightPlugin_a9d18254f7e56f5a44b5cd20ffcdfbf3a}{find\+Depth} ()
\begin{DoxyCompactList}\small\item\em Find depth of nearest light source. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_adc9174779e19de4ce0bbdd00d006244c}\label{classTypeLightPlugin_adc9174779e19de4ce0bbdd00d006244c}} 
double {\bfseries get\+Farthest\+Radius} ()
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a60a3b932c59217b2d9dee6ff5c925dc2}\label{classTypeLightPlugin_a60a3b932c59217b2d9dee6ff5c925dc2}} 
void \hyperlink{classTypeLightPlugin_a60a3b932c59217b2d9dee6ff5c925dc2}{add\+Assist\+Lines} ()
\begin{DoxyCompactList}\small\item\em Get number of non-\/directional light sources. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_acfda056da1a6d9da946ded79e5e2f14a}\label{classTypeLightPlugin_acfda056da1a6d9da946ded79e5e2f14a}} 
std\+::vector$<$ int $>$ \hyperlink{classTypeLightPlugin_acfda056da1a6d9da946ded79e5e2f14a}{light\+Sources\+\_\+}
\begin{DoxyCompactList}\small\item\em Count light sources in scene. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classTypeLightPlugin_a0b20040a612775cf5247d0b98b607f02}\label{classTypeLightPlugin_a0b20040a612775cf5247d0b98b607f02}} 
bool {\bfseries default\+Lights\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a6c2f4b2c1849bad101074695209ca729}\label{classTypeLightPlugin_a6c2f4b2c1849bad101074695209ca729}} 
\hyperlink{namespaceACG_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} {\bfseries light\+\_\+matrix\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a94fd424c34428298cbc4d91a6607e6db}\label{classTypeLightPlugin_a94fd424c34428298cbc4d91a6607e6db}} 
Q\+Tool\+Bar $\ast$ {\bfseries toolbar\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ac143e2d8bafd19b2625ba0b443c80e64}\label{classTypeLightPlugin_ac143e2d8bafd19b2625ba0b443c80e64}} 
Q\+Tool\+Bar $\ast$ {\bfseries light\+Options\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ace2ac27f6d2202dc7939a84d93536db5}\label{classTypeLightPlugin_ace2ac27f6d2202dc7939a84d93536db5}} 
Q\+Action $\ast$ {\bfseries light\+Action\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_aa75be6ab78b63489dd4e7e6785fdbcdf}\label{classTypeLightPlugin_aa75be6ab78b63489dd4e7e6785fdbcdf}} 
Q\+Action $\ast$ {\bfseries move\+Mode\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a719c146c539861c17ed6e0622b4ca2a7}\label{classTypeLightPlugin_a719c146c539861c17ed6e0622b4ca2a7}} 
Q\+Action $\ast$ {\bfseries translate\+Mode\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a23730d4b8f4863935cd93a36c2ee5233}\label{classTypeLightPlugin_a23730d4b8f4863935cd93a36c2ee5233}} 
Q\+Action $\ast$ {\bfseries rotate\+Mode\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a5eb9d52383575a1fe80e54359f9a347c}\label{classTypeLightPlugin_a5eb9d52383575a1fe80e54359f9a347c}} 
Q\+Action $\ast$ {\bfseries all\+Lights\+Mode\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a79fb9a5d8aa896a2eb85908c0ac86341}\label{classTypeLightPlugin_a79fb9a5d8aa896a2eb85908c0ac86341}} 
Q\+Action $\ast$ {\bfseries viewer\+Toolbar\+Action\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ac2e44fb4e19b87ca10ed0efc7312f6d4}\label{classTypeLightPlugin_ac2e44fb4e19b87ca10ed0efc7312f6d4}} 
bool {\bfseries only\+Targets\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a855850ae569607533208299d4258c0ea}\label{classTypeLightPlugin_a855850ae569607533208299d4258c0ea}} 
Q\+Point {\bfseries last\+Point2\+D\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a0a2c97318f5a21f36c86044ef763fa14}\label{classTypeLightPlugin_a0a2c97318f5a21f36c86044ef763fa14}} 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} {\bfseries last\+Point3\+D\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a72de6a22227ea864bf856286c7fd6e4d}\label{classTypeLightPlugin_a72de6a22227ea864bf856286c7fd6e4d}} 
float {\bfseries plane\+Depth\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a5f77378462d20caaeaa59ddba87616e5}\label{classTypeLightPlugin_a5f77378462d20caaeaa59ddba87616e5}} 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} {\bfseries trans\+Vec\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a498318a61165a2b59e64abe07c9c1630}\label{classTypeLightPlugin_a498318a61165a2b59e64abe07c9c1630}} 
bool {\bfseries rotation\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a868db6291c24a114ca7b32ca14ab8b2e}\label{classTypeLightPlugin_a868db6291c24a114ca7b32ca14ab8b2e}} 
double {\bfseries radius\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a7a8773eb0875c0e0d38ead38a5db746d}\label{classTypeLightPlugin_a7a8773eb0875c0e0d38ead38a5db746d}} 
float {\bfseries depth\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a8b3e501d55f43f07b8d3a8a386137e04}\label{classTypeLightPlugin_a8b3e501d55f43f07b8d3a8a386137e04}} 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} {\bfseries light\+Center\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ab40ce4b6da944eccdd82d014389594da}\label{classTypeLightPlugin_ab40ce4b6da944eccdd82d014389594da}} 
double {\bfseries light\+Radius\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a58ddd7953240f09de66376921941d2fb}\label{classTypeLightPlugin_a58ddd7953240f09de66376921941d2fb}} 
int {\bfseries light\+Id\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_a75921a3ded20fe9de7118f6aec12fe29}\label{classTypeLightPlugin_a75921a3ded20fe9de7118f6aec12fe29}} 
bool {\bfseries hit\+Light\+Trackball\+\_\+}
\item 
\mbox{\Hypertarget{classTypeLightPlugin_ae30c0c7c7f583d35e0bbeade11da63d2}\label{classTypeLightPlugin_ae30c0c7c7f583d35e0bbeade11da63d2}} 
bool {\bfseries hit\+Trackball\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 63 of file Type\+Light.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classTypeLightPlugin_a51dd9fe9f9fc9a9bfa245349646ff4f6}\label{classTypeLightPlugin_a51dd9fe9f9fc9a9bfa245349646ff4f6}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!added\+Empty\+Object@{added\+Empty\+Object}}
\index{added\+Empty\+Object@{added\+Empty\+Object}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{added\+Empty\+Object()}{addedEmptyObject()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::added\+Empty\+Object (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



An empty object has been added. 

Slot is called if an empty object has been added by the core.~\newline
This slot will be executed on the main thread.~\newline

\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & Id of the new object \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{classLoadSaveInterface_acb0f81b08c31541abdc572f2fa400bf1}{Load\+Save\+Interface}.



Definition at line 392 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a68df1f138415cbd60f842bb707d219c2}\label{classTypeLightPlugin_a68df1f138415cbd60f842bb707d219c2}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!add\+Empty@{add\+Empty}}
\index{add\+Empty@{add\+Empty}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{add\+Empty()}{addEmpty()}}
{\footnotesize\ttfamily int Type\+Light\+Plugin\+::add\+Empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Create an empty object. 

When this slot is called you have to create an object of your supported type. \begin{DoxyReturn}{Returns}
Id of the new Object 
\end{DoxyReturn}


Implements \hyperlink{classTypeInterface_a50b2bfa5db5ff3ce6f3e8cc8e40260f0}{Type\+Interface}.



Definition at line 368 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a76fc35e641151ac052aba76c30072648}\label{classTypeLightPlugin_a76fc35e641151ac052aba76c30072648}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!compute\+Click\+On\+Light\+Trackball@{compute\+Click\+On\+Light\+Trackball}}
\index{compute\+Click\+On\+Light\+Trackball@{compute\+Click\+On\+Light\+Trackball}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{compute\+Click\+On\+Light\+Trackball()}{computeClickOnLightTrackball()}}
{\footnotesize\ttfamily bool Type\+Light\+Plugin\+::compute\+Click\+On\+Light\+Trackball (\begin{DoxyParamCaption}\item[{const Q\+Point \&}]{\+\_\+v2D,  }\item[{\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+click\+On\+Sphere,  }\item[{\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} \&}]{\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute click on trackball of light source. 

Compute click on trackball having the light\textquotesingle{}s center as center point. 

Definition at line 698 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_ab79ef1f1a8544a4145fe2881e61c7e84}\label{classTypeLightPlugin_ab79ef1f1a8544a4145fe2881e61c7e84}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!compute\+Click\+On\+Trackball@{compute\+Click\+On\+Trackball}}
\index{compute\+Click\+On\+Trackball@{compute\+Click\+On\+Trackball}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{compute\+Click\+On\+Trackball()}{computeClickOnTrackball()}}
{\footnotesize\ttfamily bool Type\+Light\+Plugin\+::compute\+Click\+On\+Trackball (\begin{DoxyParamCaption}\item[{const Q\+Point \&}]{\+\_\+v2D,  }\item[{\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+click\+On\+Sphere,  }\item[{\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} \&}]{\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute click on trackball containing the light source. 

Compute click on trackball having the trackball center of the scene as center point. 

Definition at line 667 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a85165056ad7039a1fc02eb19b774a8cd}\label{classTypeLightPlugin_a85165056ad7039a1fc02eb19b774a8cd}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!description@{description}}
\index{description@{description}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String Type\+Light\+Plugin\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

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



Definition at line 154 of file Type\+Light.\+hh.

\mbox{\Hypertarget{classTypeLightPlugin_ac3656f160710fbb6b38fcfe06b183caa}\label{classTypeLightPlugin_ac3656f160710fbb6b38fcfe06b183caa}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!name@{name}}
\index{name@{name}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String Type\+Light\+Plugin\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a name for the plugin. 

This Function has to return the name of the plugin. 

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



Definition at line 153 of file Type\+Light.\+hh.

\mbox{\Hypertarget{classTypeLightPlugin_ac84ec76e6e79eab1cd45d10f9db37987}\label{classTypeLightPlugin_ac84ec76e6e79eab1cd45d10f9db37987}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!object\+Deleted@{object\+Deleted}}
\index{object\+Deleted@{object\+Deleted}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{object\+Deleted()}{objectDeleted()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::object\+Deleted (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



An object was deleted. 

This function is called by the core if an object gets deleted. It is called immediately before the object is removed from the scenegraph. So if this function is invoked, the object still exists. All plugins get informed via this slot.\textbackslash{}

After this function got called for all plugins, the object is removed from the scene with all nodes attached to it and all \hyperlink{classPerObjectData}{Per\+Object\+Data} attached to it.~\newline
 This slot will be executed on the main thread.


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & Id of the object that is deleted. \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{classLoadSaveInterface_a0ab70c4ae3c08f298ecefa58f0bb8b2f}{Load\+Save\+Interface}.



Definition at line 411 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a10d87f7a4fc4a91566bce619326f97f6}\label{classTypeLightPlugin_a10d87f7a4fc4a91566bce619326f97f6}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{plugins\+Initialized()}{pluginsInitialized()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::plugins\+Initialized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\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 from \hyperlink{classBaseInterface_a5f240478907447bf172618bd4205df65}{Base\+Interface}.



Definition at line 194 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a2ac204fe7abd155b8d9de19b67ab41b2}\label{classTypeLightPlugin_a2ac204fe7abd155b8d9de19b67ab41b2}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!slot\+All\+Cleared@{slot\+All\+Cleared}}
\index{slot\+All\+Cleared@{slot\+All\+Cleared}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{slot\+All\+Cleared()}{slotAllCleared()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::slot\+All\+Cleared (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\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 from \hyperlink{classBaseInterface_aa00a3111da5d92c9d001a0a8272c5a91}{Base\+Interface}.



Definition at line 84 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_abf80afaa0cc573439acf8bcdeef7e210}\label{classTypeLightPlugin_abf80afaa0cc573439acf8bcdeef7e210}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!slot\+Mouse\+Event\+Light@{slot\+Mouse\+Event\+Light}}
\index{slot\+Mouse\+Event\+Light@{slot\+Mouse\+Event\+Light}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{slot\+Mouse\+Event\+Light()}{slotMouseEventLight()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::slot\+Mouse\+Event\+Light (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Mouse Event from main application ( Light Mode ) 

This slot is called if a mouse event occurred in the Viewer This slot will only get called in Light\+Mode. Right button clicks will not be passed to the plugins as this is reserved for the context \hyperlink{classMenu}{Menu}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & Mouse event \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{classMouseInterface_adcbc518b37eb99caab2f46982048fb88}{Mouse\+Interface}.



Definition at line 482 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_a91afc59db3b93c1a1aebe7b0accf8d46}\label{classTypeLightPlugin_a91afc59db3b93c1a1aebe7b0accf8d46}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!slot\+Pick\+Mode\+Changed@{slot\+Pick\+Mode\+Changed}}
\index{slot\+Pick\+Mode\+Changed@{slot\+Pick\+Mode\+Changed}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{slot\+Pick\+Mode\+Changed()}{slotPickModeChanged()}}
{\footnotesize\ttfamily void Type\+Light\+Plugin\+::slot\+Pick\+Mode\+Changed (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{\+\_\+mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



The picking\+Mode has changed. 

This slot is called if the user changes the current picking mode 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mode} & Identifier of Picking mode \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{classPickingInterface_a5bf0bf6559d2b5411d0f3270415242c1}{Picking\+Interface}.



Definition at line 294 of file Type\+Light.\+cc.

\mbox{\Hypertarget{classTypeLightPlugin_af6612a603253582d733aa9646ea2a4c2}\label{classTypeLightPlugin_af6612a603253582d733aa9646ea2a4c2}} 
\index{Type\+Light\+Plugin@{Type\+Light\+Plugin}!supported\+Type@{supported\+Type}}
\index{supported\+Type@{supported\+Type}!Type\+Light\+Plugin@{Type\+Light\+Plugin}}
\subsubsection{\texorpdfstring{supported\+Type()}{supportedType()}}
{\footnotesize\ttfamily \hyperlink{classDataType}{Data\+Type} Type\+Light\+Plugin\+::supported\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return your supported object type( e.\+g. D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+SH ) 

The function is used from add\+Empty in the core to check if your plugin can create an object of a given data\+Type. If so, your add\+Empty function will be invoked to create it. 

Implements \hyperlink{classTypeInterface_a05736f72d3220fbd4152e902b0fa7756}{Type\+Interface}.



Definition at line 165 of file Type\+Light.\+hh.



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