\hypertarget{classSelectionInterface}{}\section{Selection\+Interface Class Reference}
\label{classSelectionInterface}\index{Selection\+Interface@{Selection\+Interface}}


Interface for all plugins which want to use selection functions.  




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

Inheritance diagram for Selection\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=9.000000cm]{classSelectionInterface}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSelectionInterface_a3510914462edd7f43299f1cc5a57f006}\label{classSelectionInterface_a3510914462edd7f43299f1cc5a57f006}} 
typedef std\+::vector$<$ \hyperlink{classDataType}{Data\+Type} $>$ {\bfseries Type\+List}
\item 
\mbox{\Hypertarget{classSelectionInterface_a43a852af0ab6648ae3ca2fb186298115}\label{classSelectionInterface_a43a852af0ab6648ae3ca2fb186298115}} 
typedef unsigned int {\bfseries Primitive\+Type}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSelectionInterface_abd1ea565f5b11596b5ec5c8df6d94407}\label{classSelectionInterface_abd1ea565f5b11596b5ec5c8df6d94407}} 
virtual \hyperlink{classSelectionInterface_abd1ea565f5b11596b5ec5c8df6d94407}{$\sim$\+Selection\+Interface} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Registering Selection Environments and primitives}
\label{_amgrp593a29409d3b7d3331eda8a7c22a15df}%
 These functions are used to register your selection environment to the selection system. The environment is basically a collection of selection metaphors that will be available for a set of Data\+Types.

You Register the Environment via \hyperlink{classSelectionInterface_ab1ddfe1d19f2a5c2cef435390283d3ac}{add\+Selection\+Environment()}. Afterwards you can register Data\+Types to the previously created environment with \hyperlink{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}{register\+Type()}. The selection interactions defined in the environment will only be available, if the registered Data\+Types exist.

Each \hyperlink{classDataType}{Data\+Type} can consist of different primitives (e.\+g. a mesh usually consists of vertices edges and faces). Use \hyperlink{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}{add\+Primitive\+Type()} to register these primitives and remember the handles you got.

Here is a short example of how to add a new selection environment and register some data type and primitive type\+:

So in our plugin we first want to add a new selection environment\+: 
\begin{DoxyCode}
emit \hyperlink{classSelectionInterface_ab1ddfe1d19f2a5c2cef435390283d3ac}{addSelectionEnvironment}(\textcolor{stringliteral}{"Mesh Object Selections"}, \textcolor{stringliteral}{"Select Triangle Mesh
       Primitives."},
                            someIconPath + \textcolor{stringliteral}{"mesh\_selection.png"}, environmentHandle\_);
\end{DoxyCode}
 Now, our handle to the newly created environment is in environment\+Handle\+\_\+. We should now see a new tab widget in the selection base tool box displaying our selection environment\+:



We now want to register a specific data type for which we want to enable selection. Say D\+A\+T\+A\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+M\+E\+SH\+: 
\begin{DoxyCode}
emit \hyperlink{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}{registerType}(environmentHandle\_, \hyperlink{TriangleMesh_8hh_a899767380abdeb71a7d93f1764e4c746}{DATA\_TRIANGLE\_MESH});
\end{DoxyCode}


Repeat this for as many data types as you want to handle in your plugin. Since triangle meshes normally consist of vertex, edge and face primitives, we want to enable selection for the three of them\+: 
\begin{DoxyCode}
emit \hyperlink{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}{addPrimitiveType}(environmentHandle\_, \textcolor{stringliteral}{"Select Vertices"}, iconPath + \textcolor{stringliteral}{"vertexType.png"}, 
      vertexType\_);
emit \hyperlink{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}{addPrimitiveType}(environmentHandle\_, \textcolor{stringliteral}{"Select Edges"},    iconPath + \textcolor{stringliteral}{"edgeType.png"},   
      edgeType\_);
emit \hyperlink{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}{addPrimitiveType}(environmentHandle\_, \textcolor{stringliteral}{"Select Faces"},    iconPath + \textcolor{stringliteral}{"faceType.png"},   
      faceType\_);
\end{DoxyCode}


The three variables of type Selection\+Interface\+::\+Primitive\+Type vertex\+Type\+\_\+, edge\+Type\+\_\+ and face\+Type\+\_\+ now hold the handles to the newly added primitive types. We use these to reference the types later on. For each registered primitive type, we now see a button appearing in the recently created environment tab in selection base plugin\textquotesingle{}s tool box\+:



The user can now chose which primitive type she wants to select via simply clicking one of these buttons (or more than one by holding the control key while clicking). We then go on with requesting the available selection metaphors in the next section. \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}{register\+Type} (Q\+String \+\_\+handle\+Name, \hyperlink{classDataType}{Data\+Type} \+\_\+type)
\begin{DoxyCompactList}\small\item\em Register data type for a selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}{add\+Primitive\+Type} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+name, Q\+String \+\_\+icon, Primitive\+Type \&\+\_\+type\+Handle)
\begin{DoxyCompactList}\small\item\em Provide selection for primitives other than the standard ones. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ab1ddfe1d19f2a5c2cef435390283d3ac}{add\+Selection\+Environment} (Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Q\+String \&\+\_\+handle\+Name)
\begin{DoxyCompactList}\small\item\em Add a selection environment in order to provide selection functions for specific data type(s) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enabling Selection Metaphors}
\label{_amgrp2f044781b5666663d10d98ad5469f365}%
\label{classSelectionInterface_SelectionInterface_enable_metaphors_group}%
\Hypertarget{classSelectionInterface_SelectionInterface_enable_metaphors_group}%
 The selection system provides a set of basic selection operations. These include toggle selection, volume lasso, surface lasso, painting, closest boundary and flood fill selection.

The interactions for these metaphors are controlled by the Base Selection Plugin. The results of these interactions are than passed on to the specific selection plugins.

These functions are used to tell the system, that you can handle the given selection metaphors in your plugin.

You can also add your custom selection mode via \hyperlink{classSelectionInterface_ad5a797ae095077357246aa2b2d819a2f}{add\+Custom\+Selection\+Mode()}.

To continue the above example, we now want to make toggle, volume lasso as well a custom selection mode available for our data types\+: 
\begin{DoxyCode}
emit \hyperlink{classSelectionInterface_aadffc2b1e4ef7af7bfdee364466e007c}{showToggleSelectionMode}(environmentHandle\_,      \textcolor{keyword}{true}, vertexType\_ | edgeType\_ 
      | faceType\_);
emit \hyperlink{classSelectionInterface_a14f36ea296270d18497de74dc52d547f}{showVolumeLassoSelectionMode}(environmentHandle\_, \textcolor{keyword}{true}, vertexType\_ | 
      edgeType\_ | faceType\_);

emit \hyperlink{classSelectionInterface_ad5a797ae095077357246aa2b2d819a2f}{addCustomSelectionMode}(environmentHandle\_, \textcolor{stringliteral}{"My Custom Selection"}, \textcolor{stringliteral}{"Description
       of my mode"}, someIconFile, vertexType\_ | edgeType\_);
\end{DoxyCode}


In the last parameter we determine for which of the registered primitive types the selection metaphor will be available. Note that multiple primitive types have to be OR\textquotesingle{}ed. The selection metaphors as well as the available primitive types will be displayed in the selection pick tool bar\+:



Now each time the user uses the toggle selection metaphor \hyperlink{classSelectionInterface_adb1742f2f116da187a34a82ec0880300}{slot\+Toggle\+Selection()} is called. See below for code examples on this. \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_ac7bbb42c4691ae774e5cf4638d4b5839}{show\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show lasso selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a14f36ea296270d18497de74dc52d547f}{show\+Volume\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show volume lasso selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aa36fdb6118a52b594c386ace3194b81f}{show\+Surface\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show surface lasso selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a7f8917bb4cf06465598a670babb16a79}{show\+Sphere\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show sphere selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ac60e2b0251d782dc47ce37d3299a4f16}{show\+Closest\+Boundary\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show closest boundary selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aa486005a70b8106c7f66ef55504ac783}{show\+Flood\+Fill\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show flood fill selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aa56eb5c98011555e89b4dc5502f66d1d}{show\+Components\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show connected components selection mode in a specified selection environment. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ad5a797ae095077357246aa2b2d819a2f}{add\+Custom\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Primitive\+Type \+\_\+associated\+Types, Q\+String \&\+\_\+custom\+Identifier)
\begin{DoxyCompactList}\small\item\em Add a custom interactive selection mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ac3b88fb30036be0d25f14d08a07cc7ef}{add\+Custom\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Primitive\+Type \+\_\+associated\+Types, Q\+String \&\+\_\+custom\+Identifier, \hyperlink{classDataType}{Data\+Type} \+\_\+object\+Type\+Restriction)
\begin{DoxyCompactList}\small\item\em Add a custom interactive selection mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aadffc2b1e4ef7af7bfdee364466e007c}{show\+Toggle\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\begin{DoxyCompactList}\small\item\em Show toggle selection mode in a specified selection environment. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{States of the selection system.}
\label{_amgrpb4888f466c8e97a272a8e7a909897f13}%
You can get the active data types, primitive types and if only target objects should be affected. \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_aa10fba8312149987e194421ee69c8041}{get\+Active\+Data\+Types} (Type\+List \&\+\_\+types)
\begin{DoxyCompactList}\small\item\em Get the data types that the currently active selection environment supports. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a54140b725745179d9a91b09530195991}{get\+Active\+Primitive\+Type} (Primitive\+Type \&\+\_\+type)
\begin{DoxyCompactList}\small\item\em Get the primitive type that is selected. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}{target\+Objects\+Only} (bool \&\+\_\+targets\+Only)
\begin{DoxyCompactList}\small\item\em Indicates whether selection should be performed on target objects only. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{File Interaction}
\label{_amgrpecb55caed4f12653b8090d4990638ece}%
 Store and load selection data in an I\+NI file. In the above example we would want something like this in order to store the current selection\+: 
\begin{DoxyCode}
\textcolor{keywordtype}{void} MySelectionPlugin::slotSaveSelection(\hyperlink{classINIFile}{INIFile}& \_file) \{

    \textcolor{comment}{// Iterate over all triangle meshes and save}
    \textcolor{comment}{// the selections for all entity types}
    \textcolor{keywordflow}{for} (\hyperlink{classPluginFunctions_1_1ObjectIterator}{PluginFunctions::ObjectIterator} o\_it(
      \hyperlink{namespacePluginFunctions_aff89407cfc7a2f18a059f6cff7d4edbb}{PluginFunctions::ALL\_OBJECTS}, \hyperlink{classDataType}{DataType}(
      \hyperlink{TriangleMesh_8hh_a899767380abdeb71a7d93f1764e4c746}{DATA\_TRIANGLE\_MESH})); 
         o\_it != \hyperlink{namespacePluginFunctions_a25c8015c612b1aaf3a840ca072ce68ca}{PluginFunctions::objectsEnd}(); ++o\_it) \{
        
        \textcolor{comment}{// Create section for each object}
        \textcolor{comment}{// Append object name to section identifier}
        QString section = QString(\textcolor{stringliteral}{"TriangleMeshSelection"}) + \textcolor{stringliteral}{"//"} + o\_it->name();
        \textcolor{keywordflow}{if}(!\_file.\hyperlink{classINIFile_a73485c97d37e77097130db9e60969b29}{section\_exists}(section)) \{
            \_file.\hyperlink{classINIFile_ab4c3d0fec0fc322ccd3366cbc7fe35db}{add\_section}(section);
        \} \textcolor{keywordflow}{else} \{
            \textcolor{keywordflow}{continue};
        \}
        
        \textcolor{comment}{// Store vertex selection}
        \_file.\hyperlink{classINIFile_ab3826958cf55d970330f57e65b65f9f2}{add\_entry}(section, \textcolor{stringliteral}{"VertexSelection"}, \hyperlink{MeshSelectionT_8hh_a5909c3d4aeccf2e22149fabd9caf2880}{getVertexSelection}(o\_it->id(
      )));
        \textcolor{comment}{// Store edge selection}
        \_file.\hyperlink{classINIFile_ab3826958cf55d970330f57e65b65f9f2}{add\_entry}(section, \textcolor{stringliteral}{"EdgeSelection"},   \hyperlink{MeshSelectionT_8hh_ae1b620b3a5ac32e6d4e5d1392040c5ac}{getEdgeSelection}(o\_it->id()));
        \textcolor{comment}{// Store face selection}
        \_file.\hyperlink{classINIFile_ab3826958cf55d970330f57e65b65f9f2}{add\_entry}(section, \textcolor{stringliteral}{"FaceSelection"},   \hyperlink{MeshSelectionT_8hh_a1b780ccb6b9d85c010cd8e53be8c4919}{getFaceSelection}(o\_it->id()));
    \}
\}
\end{DoxyCode}


This works analogously for loading selections. \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_a916a266bea486f7f4d867e8bc9f2014f}{slot\+Load\+Selection} (const \hyperlink{classINIFile}{I\+N\+I\+File} \&\+\_\+file)
\begin{DoxyCompactList}\small\item\em Load selection for specific objects in the scene. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a1c9f790d2cdb9c72a203b1cbd12828e2}{slot\+Save\+Selection} (\hyperlink{classINIFile}{I\+N\+I\+File} \&\+\_\+file)
\begin{DoxyCompactList}\small\item\em Save selection for all objects in the scene. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a8f27e96f3c0a41a0a3676b9bd5e6f832}{load\+Selection} (int \+\_\+obj\+Id, const Q\+String \&\+\_\+filename)
\begin{DoxyCompactList}\small\item\em Scripting slot for loading selections. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Keyboard Interactions}
\label{_amgrpcacb96993df4c7622109352aad70dbeb}%
 Register keyboard shortcuts for your selection plugin by emitting the \hyperlink{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}{register\+Key\+Shortcut()} slot. For example\+: 
\begin{DoxyCode}
\textcolor{comment}{// Select (a)ll, Control + A keys}
emit \hyperlink{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}{registerKeyShortcut}(Qt::Key\_A, Qt::ControlModifier);
\textcolor{comment}{// (C)lear selection, C key}
emit \hyperlink{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}{registerKeyShortcut}(Qt::Key\_C,      Qt::NoModifier);
\end{DoxyCode}


Now if the user presses a key, we can handle this by overriding \hyperlink{classSelectionInterface_a999542653d36b5791117fb59e583e4d4}{slot\+Key\+Shortcut\+Event()}. Don\textquotesingle{}t forget to test whether at least one of the registered primitives is active and whether we want to restrict to target objects only\+: 
\begin{DoxyCode}
\textcolor{keywordtype}{void} MySelectionPlugin::slotKeyShortcutEvent(\textcolor{keywordtype}{int} \_key, Qt::KeyboardModifiers \_modifiers) \{
    
   SelectionInterface::PrimitiveType type = 0u;
   emit \hyperlink{classSelectionInterface_a54140b725745179d9a91b09530195991}{getActivePrimitiveType}(type);
   
   \textcolor{keywordflow}{if}((type & (vertexType\_ | edgeType\_ | faceType\_)) == 0) \{
       \textcolor{comment}{// No supported type is active}
       \textcolor{keywordflow}{return};
   \}
   
   \textcolor{keywordtype}{bool} targetsOnly = \textcolor{keyword}{false};
   emit \hyperlink{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}{targetObjectsOnly}(targetsOnly);
   
   \hyperlink{namespacePluginFunctions_a9eae8faadd978364c97a06f639ec0ccc}{PluginFunctions::IteratorRestriction} restriction =
           (targetsOnly ? \hyperlink{namespacePluginFunctions_ae60d693ef9114d80221eea2454195526}{PluginFunctions::TARGET\_OBJECTS} : 
      \hyperlink{namespacePluginFunctions_aff89407cfc7a2f18a059f6cff7d4edbb}{PluginFunctions::ALL\_OBJECTS});
   
   \textcolor{comment}{// And so on...}
\}
\end{DoxyCode}
 \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}{register\+Key\+Shortcut} (int \+\_\+key, Qt\+::\+Keyboard\+Modifiers \+\_\+modifiers=Qt\+::\+No\+Modifier)
\begin{DoxyCompactList}\small\item\em Register key shortcut. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a999542653d36b5791117fb59e583e4d4}{slot\+Key\+Shortcut\+Event} (int \+\_\+key, Qt\+::\+Keyboard\+Modifiers \+\_\+modifiers)
\begin{DoxyCompactList}\small\item\em One of the previously registered keys has been pressed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{User Interface controls}
\label{_amgrp2bc87f130d8f35a09caed4894e085526}%
 In many cases it is desired to offer selection operations such as \char`\"{}select all vertices\char`\"{} or \char`\"{}invert edge selection\char`\"{}. For this purpose, use the \hyperlink{classSelectionInterface_a102cc1ede0222af8e9d69dba46d398a8}{add\+Selection\+Operations()} slot. In our example, we now add some of these functions using the following code\+: 
\begin{DoxyCode}
QStringList vertexOperations;
vertexOperations.append(\textcolor{stringliteral}{"Select All Vertices"});
vertexOperations.append(\textcolor{stringliteral}{"Invert Vertex Selection"});
vertexOperations.append(\textcolor{stringliteral}{"Delete All Selected Vertices"});

emit \hyperlink{classSelectionInterface_a102cc1ede0222af8e9d69dba46d398a8}{addSelectionOperations}(environmentHandle\_, vertexOperations, \textcolor{stringliteral}{"Vertex Operations"}
      );
\end{DoxyCode}


These operations will now appear in the selection environment tab of the selection base plugin\+:



The user can now perform these operations by simply clicking the buttons. Each time one of the buttons has been pressed, \hyperlink{classSelectionInterface_a7062634e1ff05505d013ca5716a3a848}{slot\+Selection\+Operation()} is called. You will have to override this in order to provide such operations.

An example would be\+: 
\begin{DoxyCode}
\textcolor{keywordtype}{void} MySelectionPlugin::slotSelectionOperation(QString \_operation) \{

   SelectionInterface::PrimitiveType type = 0u;
   emit \hyperlink{classSelectionInterface_a54140b725745179d9a91b09530195991}{getActivePrimitiveType}(type);
   
   \textcolor{comment}{// If none of our primitives is currently active}
   \textcolor{keywordflow}{if}((type & (vertexType\_ | edgeType\_ | faceType\_)) == 0)
       \textcolor{keywordflow}{return};
   
   \textcolor{comment}{// Test if operation should be applied to target objects only}
   \textcolor{keywordtype}{bool} targetsOnly = \textcolor{keyword}{false};
   emit \hyperlink{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}{targetObjectsOnly}(targetsOnly);
   \hyperlink{namespacePluginFunctions_a9eae8faadd978364c97a06f639ec0ccc}{PluginFunctions::IteratorRestriction} restriction =
           (targetsOnly ? \hyperlink{namespacePluginFunctions_ae60d693ef9114d80221eea2454195526}{PluginFunctions::TARGET\_OBJECTS} : 
      \hyperlink{namespacePluginFunctions_aff89407cfc7a2f18a059f6cff7d4edbb}{PluginFunctions::ALL\_OBJECTS});

   \textcolor{keywordflow}{if}(\_operation == \textcolor{stringliteral}{"Select All Vertices"}) \{
          
          \textcolor{keywordflow}{for} (\hyperlink{classPluginFunctions_1_1ObjectIterator}{PluginFunctions::ObjectIterator} o\_it(restriction, 
      \hyperlink{classDataType}{DataType}(\hyperlink{TriangleMesh_8hh_a899767380abdeb71a7d93f1764e4c746}{DATA\_TRIANGLE\_MESH})); 
               o\_it != \hyperlink{namespacePluginFunctions_a25c8015c612b1aaf3a840ca072ce68ca}{PluginFunctions::objectsEnd}(); ++o\_it) \{
          
          \textcolor{keywordflow}{if} (o\_it->visible()) \{
             \hyperlink{MeshSelectionT_8hh_a924f799afdbd628bcb8153cf20ebb567}{selectAllVertices}(o\_it->id());
          \}
       
         \textcolor{comment}{// Don't forget this in order to update the render buffers}
         emit updatedObject(o\_it->id(), \hyperlink{group__DefaultUpdateTypes_gab2e46f7e9b43585544b98788e606d1e2}{UPDATE\_SELECTION});    
      \}
   \}
   \textcolor{comment}{// ...and so on...}
\}
\end{DoxyCode}
 \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_ac749bb303bc70839a3c15115c3c914db}{add\+Selection\+Parameters} (Q\+String \+\_\+handle\+Name, Q\+Widget $\ast$\+\_\+widget, Q\+String \+\_\+category, Primitive\+Type \+\_\+type=0u)
\begin{DoxyCompactList}\small\item\em Add interactive selection parameters for a specific primitive type. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a102cc1ede0222af8e9d69dba46d398a8}{add\+Selection\+Operations} (Q\+String \+\_\+handle\+Name, Q\+String\+List \+\_\+operations\+List, Q\+String \+\_\+category, Primitive\+Type \+\_\+type=0u)
\begin{DoxyCompactList}\small\item\em Add non-\/interactive selection operations for a specific primitive type. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a7062634e1ff05505d013ca5716a3a848}{slot\+Selection\+Operation} (Q\+String \+\_\+operation)
\begin{DoxyCompactList}\small\item\em A specific operation is requested. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Slots which have to be implemented to use the global interaction metaphors}
\label{_amgrpba8c1e676cad1c8cba24e02293225345}%
 If you enabled selection metaphors for your environment via the \hyperlink{classSelectionInterface_SelectionInterface_enable_metaphors_group}{control functions} you will have to implement the corresponding slots here. These will be called when the events occur.

Continuing the above example, we should now override the slots for the metaphors that we have already requested above. For instance, when using the toggle metaphor, we would want to handle a toggle operation only if the currently selected primitive type belongs to our plugin\+: 
\begin{DoxyCode}
\textcolor{keywordtype}{void} MySelectionPlugin::slotToggleSelection(QPoint \_mousePosition, PrimitiveType \_currentType, \textcolor{keywordtype}{bool} 
      \_deselect) \{

   \textcolor{comment}{// Return if none of the currently active types is handled by this plugin}
   \textcolor{keywordflow}{if}((\_currentType & (vertexType\_ | edgeType\_ | faceType\_)) == 0) \textcolor{keywordflow}{return};
   
   \textcolor{comment}{// Only toggle target objects if requested}
   \textcolor{keywordtype}{bool} targetsOnly = \textcolor{keyword}{false};
   emit \hyperlink{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}{targetObjectsOnly}(targetsOnly);
   
   \textcolor{comment}{// Do the picking...}
   
   \textcolor{comment}{// ...and the actual selection}
   \textcolor{keywordflow}{if}(\_currentType & vertexType\_) \{
       \textcolor{comment}{// Vertex selection}
   \}
   
   \textcolor{keywordflow}{if}(\_currentType & edgeType\_) \{
       \textcolor{comment}{// Edge selection}
   \}
   
   \textcolor{comment}{// ...and so on...}
\}
\end{DoxyCode}
 \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_adb1742f2f116da187a34a82ec0880300}{slot\+Toggle\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a toggle selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a7538f8a7bcf7e768e2c9d8a23a4b8e2e}{slot\+Lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ac0195511eef6d4f9e42218feac3e124b}{slot\+Volume\+Lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a volume lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aac8e68421f7d02bc2f192e7b025ac6f2}{slot\+Surface\+Lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a surface lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a4e693dc4deade5738d7b13fce787b4f7}{slot\+Sphere\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, double \+\_\+radius, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a sphere selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_acc0da8cf5e115de8c4ae239ab6b364c1}{slot\+Closest\+Boundary\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a closest boundary selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a31d7ad7aaa0929fa38b660f6361ea338}{slot\+Flood\+Fill\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a flood fill selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a2c0a078cf6f639459abb4e07c97f72e2}{slot\+Components\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a connected components selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a7d63e34dc51bd959efad1a20219196db}{slot\+Custom\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, Q\+String \+\_\+custom\+Identifier, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Called whenever the user performs a custom selection. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Signals emitted by the Selection\+Base\+Plugin}
\label{_amgrp76745b9f5abbc6d40e0a9db50d95c0d8}%
The following signals are emitted by the selection base plugin. {\bfseries You should not use them!} \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_a1ac8c2f1b526f635b2bc380d300aad09}{toggle\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a toggle selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_af1b63202b1f195868844f3e51ac0210e}{lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a0b5fa1eab50587c0eb78d0129a279cf6}{volume\+Lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a volume lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a33fd583989c1c3a0b0c10d216626a712}{surface\+Lasso\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a surface lasso selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a01e134bd76da2babfe6c566667a79386}{sphere\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, double \+\_\+radius, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a sphere selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_ac53e77b2ecaa950b932444bc1aaac980}{closest\+Boundary\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a closest boundary selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a79739917d7ed0f793a3ef992662f61e1}{flood\+Fill\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a flood fill selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a192c6ec700e4087ac22f361e0b587e70}{components\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a connected components selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a46b644f53691dba7254acc5e7815e60b}{custom\+Selection} (Q\+Mouse\+Event $\ast$\+\_\+event, Primitive\+Type \+\_\+current\+Type, Q\+String \+\_\+custom\+Identifier, bool \+\_\+deselect)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin whenever the user performs a custom selection. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_af5380e7706c3aff5d24c6794b283c7c7}{load\+Selection} (const \hyperlink{classINIFile}{I\+N\+I\+File} \&\+\_\+file)
\begin{DoxyCompactList}\small\item\em Load selections from ini-\/file. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_aac872dd3eb315775dbe25b799eeec9e0}{save\+Selection} (\hyperlink{classINIFile}{I\+N\+I\+File} \&\+\_\+file)
\begin{DoxyCompactList}\small\item\em Save selections into ini-\/file. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a2dcccd7c338d620f0d9e6f86e62b5ace}{key\+Shortcut\+Event} (int \+\_\+key, Qt\+::\+Keyboard\+Modifiers \+\_\+modifiers=Qt\+::\+No\+Modifier)
\begin{DoxyCompactList}\small\item\em Key shortcut event happened. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a7286d4f09d938307a606cc370365b18c}{selection\+Operation} (Q\+String \+\_\+operation)
\begin{DoxyCompactList}\small\item\em Emitted by selection base plugin when a non-\/interactive selection operation is requested. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Slots handled by the Selection\+Base\+Plugin}
\label{_amgrpbb15c716ee6eaf3df82e67e7839ffd7d}%
The following slots are implemented by the selection base plugin. {\bfseries You should not use them!} \begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classSelectionInterface_a15f441ceee9bbf3cb58cf2b5dc5e371e}{slot\+Add\+Selection\+Environment} (Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Q\+String \&\+\_\+handle\+Name)
\begin{DoxyCompactList}\small\item\em Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a30545a19469659ac700529dfa3d4cc69}{slot\+Register\+Type} (Q\+String \+\_\+handle\+Name, \hyperlink{classDataType}{Data\+Type} \+\_\+type)
\begin{DoxyCompactList}\small\item\em Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a37a8ae3150f42546cd3c517198c831e6}{slot\+Add\+Primitive\+Type} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+name, Q\+String \+\_\+icon, Primitive\+Type \&\+\_\+type\+Handle)
\begin{DoxyCompactList}\small\item\em Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_af2a1750eadab6fc44138e17469d888d9}{slot\+Add\+Custom\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Primitive\+Type \+\_\+associated\+Types, Q\+String \&\+\_\+custom\+Identifier)
\begin{DoxyCompactList}\small\item\em Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_af3c40e8c66f8a83d410f6420453c914f}{slot\+Add\+Custom\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, Q\+String \+\_\+mode\+Name, Q\+String \+\_\+description, Q\+String \+\_\+icon, Primitive\+Type \+\_\+associated\+Types, Q\+String \&\+\_\+custom\+Identifier, \hyperlink{classDataType}{Data\+Type} \+\_\+object\+Type\+Restriction)
\begin{DoxyCompactList}\small\item\em Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSelectionInterface_a99c338ea8773c3107987c539527d7436}{slot\+Show\+Toggle\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a6d962b49b0a2ef07d6d9d6e5963852f2}{slot\+Show\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a859c672fc89b458ded27fa115d7177ef}{slot\+Show\+Volume\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a30c46ccf46a510a47b27a6875adb82c7}{slot\+Show\+Surface\+Lasso\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a550767135232bd7ab7f07202cc3e0d02}{slot\+Show\+Sphere\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a6b39a77ac702a6ee49c5fd3f58458c82}{slot\+Show\+Closest\+Boundary\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_ab1a248611a93d403c60e9e992cc3f879}{slot\+Show\+Flood\+Fill\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a9abba4b8153a4df376effcd102f9b50b}{slot\+Components\+Selection\+Mode} (Q\+String \+\_\+handle\+Name, bool \+\_\+show, Primitive\+Type \+\_\+associated\+Types)
\item 
virtual void \hyperlink{classSelectionInterface_a08d57cfb2ffecce58d36b328dd929907}{slot\+Register\+Key\+Shortcut} (int \+\_\+key, Qt\+::\+Keyboard\+Modifiers \+\_\+modifiers)
\item 
virtual void \hyperlink{classSelectionInterface_ace92f49e968f051320b0e0d1a78dfe38}{slot\+Get\+Active\+Data\+Types} (Type\+List \&\+\_\+types)
\item 
virtual void \hyperlink{classSelectionInterface_a774e42fbdf8dea56314fa25235c4c5ed}{slot\+Get\+Active\+Primitive\+Type} (Primitive\+Type \&\+\_\+type)
\item 
virtual void \hyperlink{classSelectionInterface_aac41163b7f7d7af623ff948e85b6c97b}{slot\+Target\+Objects\+Only} (bool \&\+\_\+targets\+Only)
\item 
virtual void \hyperlink{classSelectionInterface_a96266369cacb50d253d100302883b6bb}{slot\+Add\+Selection\+Operations} (Q\+String \+\_\+handle\+Name, Q\+String\+List \+\_\+operations\+List, Q\+String \+\_\+category, Primitive\+Type \+\_\+type)
\item 
virtual void \hyperlink{classSelectionInterface_a94262d46a5fd6e49a02505a51fa57a16}{slot\+Add\+Selection\+Parameters} (Q\+String \+\_\+handle\+Name, Q\+Widget $\ast$\+\_\+widget, Q\+String \+\_\+category, Primitive\+Type \+\_\+type=0u)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface for all plugins which want to use selection functions. 

\hyperlink{selectionInterfacePage}{Detailed description} ~\newline
 Using this interface you can instruct the core to select objects and different primitive types. 

Definition at line 67 of file Selection\+Interface.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classSelectionInterface_ad5a797ae095077357246aa2b2d819a2f}\label{classSelectionInterface_ad5a797ae095077357246aa2b2d819a2f}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Custom\+Selection\+Mode@{add\+Custom\+Selection\+Mode}}
\index{add\+Custom\+Selection\+Mode@{add\+Custom\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Custom\+Selection\+Mode()}{addCustomSelectionMode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Custom\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types,  }\item[{Q\+String \&}]{\+\_\+custom\+Identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Add a custom interactive selection mode. 

If a plugin should provide an interactive selection mode other than the standard ones (which include toggle, lasso, volume lasso, sphere, closest boundary and flood fill selection), one can add a custom interactive selection mode via this signal. Once the custom mode is added, it will appear in the sub-\/menu for the associated selection environment. If the user chooses this mode in order to do selection, slot\+Custom\+Selection(\+Q\+Mouse\+Event$\ast$,\+Q\+String) is called. This signal returns the added identifier for this selection mode in parameter \+\_\+identifier.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+mode\+Name} & The name of this mode (also button caption) \\
\hline
{\em \+\_\+description} & A brief description of what the selection mode does \\
\hline
{\em \+\_\+icon} & Path to an icon which is used for this selection mode \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
{\em \+\_\+custom\+Identifier} & Holds the identifier of the custom selection modes \\
\hline
\end{DoxyParams}


Definition at line 349 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac3b88fb30036be0d25f14d08a07cc7ef}\label{classSelectionInterface_ac3b88fb30036be0d25f14d08a07cc7ef}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Custom\+Selection\+Mode@{add\+Custom\+Selection\+Mode}}
\index{add\+Custom\+Selection\+Mode@{add\+Custom\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Custom\+Selection\+Mode()}{addCustomSelectionMode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Custom\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types,  }\item[{Q\+String \&}]{\+\_\+custom\+Identifier,  }\item[{\hyperlink{classDataType}{Data\+Type}}]{\+\_\+object\+Type\+Restriction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Add a custom interactive selection mode. 

If a plugin should provide an interactive selection mode other than the standard ones (which include toggle, lasso, volume lasso, sphere, closest boundary and flood fill selection), one can add a custom interactive selection mode via this signal. Once the custom mode is added, it will appear in the sub-\/menu for the associated selection environment. If the user chooses this mode in order to do selection, slot\+Custom\+Selection(\+Q\+Mouse\+Event$\ast$,\+Q\+String) is called. This signal returns the added identifier for this selection mode in parameter \+\_\+identifier.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+mode\+Name} & The name of this mode (also button caption) \\
\hline
{\em \+\_\+description} & A brief description of what the selection mode does \\
\hline
{\em \+\_\+icon} & Path to an icon which is used for this selection mode \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
{\em \+\_\+custom\+Identifier} & Holds the identifier of the custom selection modes \\
\hline
{\em \+\_\+object\+Type\+Restriction} & Restrict the mode to this specific data type \\
\hline
\end{DoxyParams}


Definition at line 371 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}\label{classSelectionInterface_a62757eaa8f98e6c854b75b06ba78d430}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Primitive\+Type@{add\+Primitive\+Type}}
\index{add\+Primitive\+Type@{add\+Primitive\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Primitive\+Type()}{addPrimitiveType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Primitive\+Type (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+name,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type \&}]{\+\_\+type\+Handle }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Provide selection for primitives other than the standard ones. 

Use this signal to add a new primitive type that can be selected. This returns a handle to the newly added primitive type which will be of use later on.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment to which this type should be added \\
\hline
{\em \+\_\+name} & The name of the primitive type, e.\+g. \char`\"{}\+B-\/\+Spline Surface Control Point\char`\"{} \\
\hline
{\em \+\_\+icon} & Path to the icon for the primitive type \\
\hline
{\em \+\_\+type\+Handle} & The returned handle to the added primitive type \\
\hline
\end{DoxyParams}


Definition at line 180 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ab1ddfe1d19f2a5c2cef435390283d3ac}\label{classSelectionInterface_ab1ddfe1d19f2a5c2cef435390283d3ac}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Selection\+Environment@{add\+Selection\+Environment}}
\index{add\+Selection\+Environment@{add\+Selection\+Environment}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Selection\+Environment}{addSelectionEnvironment}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Selection\+Environment (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Q\+String \&}]{\+\_\+handle\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Add a selection environment in order to provide selection functions for specific data type(s) 

This adds a toolbar button and initializes a new selection environment that supports all objects/entities of a specified data type. The type for which the selection applies is later registered via the signal \hyperlink{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}{register\+Type(\+Q\+String,\+Data\+Type)}. Use the returned \+\_\+handle\+Name for referencing the selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+mode\+Name} & The name of the selection mode, e.\+g. \char`\"{}\+Mesh Selection\char`\"{} \\
\hline
{\em \+\_\+description} & The description for the selection mode (also tooltip) \\
\hline
{\em \+\_\+icon} & Path to the icon for this mode (basically a type icon) \\
\hline
{\em \+\_\+handle\+Name} & The handle of the recently added selection environment. Needed for referencing \\
\hline
\end{DoxyParams}


Definition at line 155 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a102cc1ede0222af8e9d69dba46d398a8}\label{classSelectionInterface_a102cc1ede0222af8e9d69dba46d398a8}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Selection\+Operations@{add\+Selection\+Operations}}
\index{add\+Selection\+Operations@{add\+Selection\+Operations}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Selection\+Operations}{addSelectionOperations}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Selection\+Operations (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String\+List}]{\+\_\+operations\+List,  }\item[{Q\+String}]{\+\_\+category,  }\item[{Primitive\+Type}]{\+\_\+type = {\ttfamily 0u} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Add non-\/interactive selection operations for a specific primitive type. 

One can add non-\/interactive selection operations for each primitive type that will appear as buttons in the selection base toolbar. An example for this would be \char`\"{}\+Clear selection\char`\"{}, \char`\"{}\+Invert\char`\"{}, \char`\"{}\+Delete\char`\"{}, etc. If one of this operations is requested, \hyperlink{classSelectionInterface_a7062634e1ff05505d013ca5716a3a848}{slot\+Selection\+Operation(\+Q\+String)} is called. These functions are listed in categories which are mainly used to improve usability.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this operation should be available \\
\hline
{\em \+\_\+operations\+List} & The list of operations that can be performed for a given primitive type \\
\hline
{\em \+\_\+category} & The category under which the specified operations will be listed \\
\hline
{\em \+\_\+type} & The primitive type for which the specified operations will be available (0u if operation should always be available) \\
\hline
\end{DoxyParams}


Definition at line 646 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac749bb303bc70839a3c15115c3c914db}\label{classSelectionInterface_ac749bb303bc70839a3c15115c3c914db}} 
\index{Selection\+Interface@{Selection\+Interface}!add\+Selection\+Parameters@{add\+Selection\+Parameters}}
\index{add\+Selection\+Parameters@{add\+Selection\+Parameters}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{add\+Selection\+Parameters()}{addSelectionParameters()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::add\+Selection\+Parameters (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+Widget $\ast$}]{\+\_\+widget,  }\item[{Q\+String}]{\+\_\+category,  }\item[{Primitive\+Type}]{\+\_\+type = {\ttfamily 0u} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Add interactive selection parameters for a specific primitive type. 

One can add interactive selection parameters for each primitive type that will appear as widgets in the selection base toolbar.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this operation should be available \\
\hline
{\em \+\_\+widget} & The widget that shall be added for parameters enabled for a given primitive type \\
\hline
{\em \+\_\+category} & The category under which the specified operations will be listed \\
\hline
{\em \+\_\+type} & The primitive type for which the specified operations will be available (0u if operation should always be available) \\
\hline
\end{DoxyParams}


Definition at line 658 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac53e77b2ecaa950b932444bc1aaac980}\label{classSelectionInterface_ac53e77b2ecaa950b932444bc1aaac980}} 
\index{Selection\+Interface@{Selection\+Interface}!closest\+Boundary\+Selection@{closest\+Boundary\+Selection}}
\index{closest\+Boundary\+Selection@{closest\+Boundary\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{closest\+Boundary\+Selection()}{closestBoundarySelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::closest\+Boundary\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a closest boundary selection. 

This connects to \hyperlink{classSelectionInterface_acc0da8cf5e115de8c4ae239ab6b364c1}{slot\+Closest\+Boundary\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 922 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a192c6ec700e4087ac22f361e0b587e70}\label{classSelectionInterface_a192c6ec700e4087ac22f361e0b587e70}} 
\index{Selection\+Interface@{Selection\+Interface}!components\+Selection@{components\+Selection}}
\index{components\+Selection@{components\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{components\+Selection()}{componentsSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::components\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a connected components selection. 

This connects to \hyperlink{classSelectionInterface_a2c0a078cf6f639459abb4e07c97f72e2}{slot\+Components\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 944 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a46b644f53691dba7254acc5e7815e60b}\label{classSelectionInterface_a46b644f53691dba7254acc5e7815e60b}} 
\index{Selection\+Interface@{Selection\+Interface}!custom\+Selection@{custom\+Selection}}
\index{custom\+Selection@{custom\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{custom\+Selection()}{customSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::custom\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{Q\+String}]{\+\_\+custom\+Identifier,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a custom selection. 

This connects to slot\+Custom\+Selection(\+Q\+Mouse\+Event$\ast$,\+Q\+String) which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+custom\+Identifier} & Holds the identifier of the custom selection modes \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 956 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a79739917d7ed0f793a3ef992662f61e1}\label{classSelectionInterface_a79739917d7ed0f793a3ef992662f61e1}} 
\index{Selection\+Interface@{Selection\+Interface}!flood\+Fill\+Selection@{flood\+Fill\+Selection}}
\index{flood\+Fill\+Selection@{flood\+Fill\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{flood\+Fill\+Selection()}{floodFillSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::flood\+Fill\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a flood fill selection. 

This connects to \hyperlink{classSelectionInterface_a31d7ad7aaa0929fa38b660f6361ea338}{slot\+Flood\+Fill\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 933 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aa10fba8312149987e194421ee69c8041}\label{classSelectionInterface_aa10fba8312149987e194421ee69c8041}} 
\index{Selection\+Interface@{Selection\+Interface}!get\+Active\+Data\+Types@{get\+Active\+Data\+Types}}
\index{get\+Active\+Data\+Types@{get\+Active\+Data\+Types}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{get\+Active\+Data\+Types()}{getActiveDataTypes()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::get\+Active\+Data\+Types (\begin{DoxyParamCaption}\item[{Type\+List \&}]{\+\_\+types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get the data types that the currently active selection environment supports. 

This fetches a list of data types that are supported by the currently activated selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+types} & The list of currently active data types \\
\hline
\end{DoxyParams}


Definition at line 396 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a54140b725745179d9a91b09530195991}\label{classSelectionInterface_a54140b725745179d9a91b09530195991}} 
\index{Selection\+Interface@{Selection\+Interface}!get\+Active\+Primitive\+Type@{get\+Active\+Primitive\+Type}}
\index{get\+Active\+Primitive\+Type@{get\+Active\+Primitive\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{get\+Active\+Primitive\+Type()}{getActivePrimitiveType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::get\+Active\+Primitive\+Type (\begin{DoxyParamCaption}\item[{Primitive\+Type \&}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get the primitive type that is selected. 

This returns the id of the primitive type that is selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+type} & Id of selected primitive type \\
\hline
\end{DoxyParams}


Definition at line 404 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a2dcccd7c338d620f0d9e6f86e62b5ace}\label{classSelectionInterface_a2dcccd7c338d620f0d9e6f86e62b5ace}} 
\index{Selection\+Interface@{Selection\+Interface}!key\+Shortcut\+Event@{key\+Shortcut\+Event}}
\index{key\+Shortcut\+Event@{key\+Shortcut\+Event}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{key\+Shortcut\+Event()}{keyShortcutEvent()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::key\+Shortcut\+Event (\begin{DoxyParamCaption}\item[{int}]{\+\_\+key,  }\item[{Qt\+::\+Keyboard\+Modifiers}]{\+\_\+modifiers = {\ttfamily Qt\+:\+:NoModifier} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Key shortcut event happened. 

Emitted by selection base plugin whenever a registered key shortcut has been pressed.


\begin{DoxyParams}{Parameters}
{\em \+\_\+key} & Key to register \\
\hline
{\em \+\_\+modifiers} & Key modifiers (i.\+e. shift, control, meta keys, defaults to none) \\
\hline
\end{DoxyParams}


Definition at line 987 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_af1b63202b1f195868844f3e51ac0210e}\label{classSelectionInterface_af1b63202b1f195868844f3e51ac0210e}} 
\index{Selection\+Interface@{Selection\+Interface}!lasso\+Selection@{lasso\+Selection}}
\index{lasso\+Selection@{lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{lasso\+Selection()}{lassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a lasso selection. 

This connects to \hyperlink{classSelectionInterface_a7538f8a7bcf7e768e2c9d8a23a4b8e2e}{slot\+Lasso\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 877 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a8f27e96f3c0a41a0a3676b9bd5e6f832}\label{classSelectionInterface_a8f27e96f3c0a41a0a3676b9bd5e6f832}} 
\index{Selection\+Interface@{Selection\+Interface}!load\+Selection@{load\+Selection}}
\index{load\+Selection@{load\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{load\+Selection}{loadSelection}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::load\+Selection (\begin{DoxyParamCaption}\item[{int}]{\+\_\+obj\+Id,  }\item[{const Q\+String \&}]{\+\_\+filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Scripting slot for loading selections. 

Override this slot in order to directly load selections from files.


\begin{DoxyParams}{Parameters}
{\em \+\_\+obj\+Id} & The target object\textquotesingle{}s id \\
\hline
{\em \+\_\+filename} & The file in which the data is stored \\
\hline
\end{DoxyParams}


Definition at line 486 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_af5380e7706c3aff5d24c6794b283c7c7}\label{classSelectionInterface_af5380e7706c3aff5d24c6794b283c7c7}} 
\index{Selection\+Interface@{Selection\+Interface}!load\+Selection@{load\+Selection}}
\index{load\+Selection@{load\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{load\+Selection()}{loadSelection()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::load\+Selection (\begin{DoxyParamCaption}\item[{const \hyperlink{classINIFile}{I\+N\+I\+File} \&}]{\+\_\+file }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Load selections from ini-\/file. 

This signal is emitted by Selection\+Base-\/\+Plugin each time a selection should be read from a file. This ini-\/file handle is then passed to each object type selection plugin where object specific selections can be extracted.


\begin{DoxyParams}{Parameters}
{\em \+\_\+file} & The ini-\/file handle \\
\hline
\end{DoxyParams}


Definition at line 967 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}\label{classSelectionInterface_a3cbc50bf3c737d00cf13252f2cb85168}} 
\index{Selection\+Interface@{Selection\+Interface}!register\+Key\+Shortcut@{register\+Key\+Shortcut}}
\index{register\+Key\+Shortcut@{register\+Key\+Shortcut}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{register\+Key\+Shortcut}{registerKeyShortcut}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::register\+Key\+Shortcut (\begin{DoxyParamCaption}\item[{int}]{\+\_\+key,  }\item[{Qt\+::\+Keyboard\+Modifiers}]{\+\_\+modifiers = {\ttfamily Qt\+:\+:NoModifier} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Register key shortcut. 

This signal is emitted whenever a type selection plugin wants to provide key shortcuts for its functions. Note that multiple registration of one key will be possible. Key events will be passed to A\+LL type selection plugins that want to listen to key events of this key, thus, one has to ignore the event if the currently active primitive type (request via signal \hyperlink{classSelectionInterface_a54140b725745179d9a91b09530195991}{get\+Active\+Primitive\+Type(\+Primitive\+Type\&)} ) is not handled by the type selection plugin.


\begin{DoxyParams}{Parameters}
{\em \+\_\+key} & Key to register \\
\hline
{\em \+\_\+modifiers} & Key modifiers (i.\+e. shift, control, meta keys, defaults to none) \\
\hline
\end{DoxyParams}


Definition at line 548 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}\label{classSelectionInterface_a1f8c962ff5b80e35ff3a472bd0dca13b}} 
\index{Selection\+Interface@{Selection\+Interface}!register\+Type@{register\+Type}}
\index{register\+Type@{register\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{register\+Type()}{registerType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::register\+Type (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{\hyperlink{classDataType}{Data\+Type}}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Register data type for a selection environment. 

After adding a new selection environment, one can register types which the selection environment accounts for. For example, if we added a selection environment for polylines, we would have to call register\+Type(environment\+Handle,\+D\+A\+T\+A\+\_\+\+P\+O\+L\+Y\+\_\+\+L\+I\+N\+E) in order to enable polyline selections.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment for this type \\
\hline
{\em \+\_\+type} & The data type that should be added \\
\hline
\end{DoxyParams}


Definition at line 167 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aac872dd3eb315775dbe25b799eeec9e0}\label{classSelectionInterface_aac872dd3eb315775dbe25b799eeec9e0}} 
\index{Selection\+Interface@{Selection\+Interface}!save\+Selection@{save\+Selection}}
\index{save\+Selection@{save\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{save\+Selection()}{saveSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::save\+Selection (\begin{DoxyParamCaption}\item[{\hyperlink{classINIFile}{I\+N\+I\+File} \&}]{\+\_\+file }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Save selections into ini-\/file. 

This signal is emitted by Selection\+Base-\/\+Plugin each time a selection should be written into a file. This ini-\/file handle is then passed to each object type selection plugin where object specific selections can be saved.


\begin{DoxyParams}{Parameters}
{\em \+\_\+file} & The ini-\/file handle \\
\hline
\end{DoxyParams}


Definition at line 978 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a7286d4f09d938307a606cc370365b18c}\label{classSelectionInterface_a7286d4f09d938307a606cc370365b18c}} 
\index{Selection\+Interface@{Selection\+Interface}!selection\+Operation@{selection\+Operation}}
\index{selection\+Operation@{selection\+Operation}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{selection\+Operation}{selectionOperation}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::selection\+Operation (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+operation }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Emitted by selection base plugin when a non-\/interactive selection operation is requested. 

This connects to slot slot\+Selection\+Operation and is called whenever a non-\/interactive selection operation is requested.


\begin{DoxyParams}{Parameters}
{\em \+\_\+operation} & The name of the requested operation \\
\hline
\end{DoxyParams}


Definition at line 854 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac60e2b0251d782dc47ce37d3299a4f16}\label{classSelectionInterface_ac60e2b0251d782dc47ce37d3299a4f16}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Closest\+Boundary\+Selection\+Mode@{show\+Closest\+Boundary\+Selection\+Mode}}
\index{show\+Closest\+Boundary\+Selection\+Mode@{show\+Closest\+Boundary\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Closest\+Boundary\+Selection\+Mode()}{showClosestBoundarySelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Closest\+Boundary\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show closest boundary selection mode in a specified selection environment. 

Show or hide the closest boundary selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 303 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aa56eb5c98011555e89b4dc5502f66d1d}\label{classSelectionInterface_aa56eb5c98011555e89b4dc5502f66d1d}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Components\+Selection\+Mode@{show\+Components\+Selection\+Mode}}
\index{show\+Components\+Selection\+Mode@{show\+Components\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Components\+Selection\+Mode()}{showComponentsSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Components\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show connected components selection mode in a specified selection environment. 

Show or hide the connected components selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 329 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aa486005a70b8106c7f66ef55504ac783}\label{classSelectionInterface_aa486005a70b8106c7f66ef55504ac783}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Flood\+Fill\+Selection\+Mode@{show\+Flood\+Fill\+Selection\+Mode}}
\index{show\+Flood\+Fill\+Selection\+Mode@{show\+Flood\+Fill\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Flood\+Fill\+Selection\+Mode()}{showFloodFillSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Flood\+Fill\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show flood fill selection mode in a specified selection environment. 

Show or hide the flood fill selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 316 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac7bbb42c4691ae774e5cf4638d4b5839}\label{classSelectionInterface_ac7bbb42c4691ae774e5cf4638d4b5839}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Lasso\+Selection\+Mode@{show\+Lasso\+Selection\+Mode}}
\index{show\+Lasso\+Selection\+Mode@{show\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Lasso\+Selection\+Mode()}{showLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show lasso selection mode in a specified selection environment. 

Show or hide the lasso selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 251 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a7f8917bb4cf06465598a670babb16a79}\label{classSelectionInterface_a7f8917bb4cf06465598a670babb16a79}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Sphere\+Selection\+Mode@{show\+Sphere\+Selection\+Mode}}
\index{show\+Sphere\+Selection\+Mode@{show\+Sphere\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Sphere\+Selection\+Mode()}{showSphereSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Sphere\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show sphere selection mode in a specified selection environment. 

Show or hide the sphere selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 290 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aa36fdb6118a52b594c386ace3194b81f}\label{classSelectionInterface_aa36fdb6118a52b594c386ace3194b81f}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Surface\+Lasso\+Selection\+Mode@{show\+Surface\+Lasso\+Selection\+Mode}}
\index{show\+Surface\+Lasso\+Selection\+Mode@{show\+Surface\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Surface\+Lasso\+Selection\+Mode()}{showSurfaceLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Surface\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show surface lasso selection mode in a specified selection environment. 

Show or hide the surface lasso selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 277 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aadffc2b1e4ef7af7bfdee364466e007c}\label{classSelectionInterface_aadffc2b1e4ef7af7bfdee364466e007c}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Toggle\+Selection\+Mode@{show\+Toggle\+Selection\+Mode}}
\index{show\+Toggle\+Selection\+Mode@{show\+Toggle\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Toggle\+Selection\+Mode}{showToggleSelectionMode}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Toggle\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [signal]}}



Show toggle selection mode in a specified selection environment. 

Show or hide the toggle selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 238 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a14f36ea296270d18497de74dc52d547f}\label{classSelectionInterface_a14f36ea296270d18497de74dc52d547f}} 
\index{Selection\+Interface@{Selection\+Interface}!show\+Volume\+Lasso\+Selection\+Mode@{show\+Volume\+Lasso\+Selection\+Mode}}
\index{show\+Volume\+Lasso\+Selection\+Mode@{show\+Volume\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{show\+Volume\+Lasso\+Selection\+Mode()}{showVolumeLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::show\+Volume\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Show volume lasso selection mode in a specified selection environment. 

Show or hide the volume lasso selection mode for the specified selection environment. Note that per default no interactive selection mode will be available. One will always have to explicitly add the required selection modes for each selection environment.


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & The handle of the selection environment in which this mode should be available \\
\hline
{\em \+\_\+show} & Indicates whether the mode should be available or not \\
\hline
{\em \+\_\+associated\+Types} & Make this mode available only for the specified types (OR\textquotesingle{}ed) \\
\hline
\end{DoxyParams}


Definition at line 264 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_af2a1750eadab6fc44138e17469d888d9}\label{classSelectionInterface_af2a1750eadab6fc44138e17469d888d9}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Custom\+Selection\+Mode@{slot\+Add\+Custom\+Selection\+Mode}}
\index{slot\+Add\+Custom\+Selection\+Mode@{slot\+Add\+Custom\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Custom\+Selection\+Mode()}{slotAddCustomSelectionMode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Custom\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types,  }\item[{Q\+String \&}]{\+\_\+custom\+Identifier }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. 

Do not use! Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & Handle of the selection mode \\
\hline
{\em \+\_\+mode\+Name} & User visible name of the selection mode \\
\hline
{\em \+\_\+description} & Description of the mode \\
\hline
{\em \+\_\+icon} & Path to an icon displayed in the selection toolbar \\
\hline
{\em \+\_\+associated\+Types} & primitive types supported by this mode \\
\hline
{\em \+\_\+custom\+Identifier} & Identifier of this mode \\
\hline
\end{DoxyParams}


Definition at line 1040 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_af3c40e8c66f8a83d410f6420453c914f}\label{classSelectionInterface_af3c40e8c66f8a83d410f6420453c914f}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Custom\+Selection\+Mode@{slot\+Add\+Custom\+Selection\+Mode}}
\index{slot\+Add\+Custom\+Selection\+Mode@{slot\+Add\+Custom\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Custom\+Selection\+Mode()}{slotAddCustomSelectionMode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Custom\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types,  }\item[{Q\+String \&}]{\+\_\+custom\+Identifier,  }\item[{\hyperlink{classDataType}{Data\+Type}}]{\+\_\+object\+Type\+Restriction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & Handle of the selection mode \\
\hline
{\em \+\_\+mode\+Name} & User visible name of the selection mode \\
\hline
{\em \+\_\+description} & Description of the mode \\
\hline
{\em \+\_\+icon} & Path to an icon displayed in the selection toolbar \\
\hline
{\em \+\_\+associated\+Types} & primitive types supported by this mode \\
\hline
{\em \+\_\+custom\+Identifier} & Identifier of this mode \\
\hline
{\em \+\_\+object\+Type\+Restriction} & Object types supported by this mode \\
\hline
\end{DoxyParams}


Definition at line 1053 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a37a8ae3150f42546cd3c517198c831e6}\label{classSelectionInterface_a37a8ae3150f42546cd3c517198c831e6}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Primitive\+Type@{slot\+Add\+Primitive\+Type}}
\index{slot\+Add\+Primitive\+Type@{slot\+Add\+Primitive\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Primitive\+Type()}{slotAddPrimitiveType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Primitive\+Type (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String}]{\+\_\+name,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Primitive\+Type \&}]{\+\_\+type\+Handle }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. 

Do not use! Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & Handle of the selection mode \\
\hline
{\em \+\_\+name} & User visible name of the selection mode \\
\hline
{\em \+\_\+icon} & Path to an icon displayed in the selection toolbar \\
\hline
{\em \+\_\+type\+Handle} & Handle for the type \\
\hline
\end{DoxyParams}


Definition at line 1027 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a15f441ceee9bbf3cb58cf2b5dc5e371e}\label{classSelectionInterface_a15f441ceee9bbf3cb58cf2b5dc5e371e}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Selection\+Environment@{slot\+Add\+Selection\+Environment}}
\index{slot\+Add\+Selection\+Environment@{slot\+Add\+Selection\+Environment}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Selection\+Environment}{slotAddSelectionEnvironment}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Selection\+Environment (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+mode\+Name,  }\item[{Q\+String}]{\+\_\+description,  }\item[{Q\+String}]{\+\_\+icon,  }\item[{Q\+String \&}]{\+\_\+handle\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+mode\+Name} & User visible name of the selection mode \\
\hline
{\em \+\_\+description} & Description of the mode \\
\hline
{\em \+\_\+icon} & Path to an icon displayed in the selection toolbar \\
\hline
{\em \+\_\+handle\+Name} & Handle of the selection mode \\
\hline
\end{DoxyParams}


Definition at line 1009 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a96266369cacb50d253d100302883b6bb}\label{classSelectionInterface_a96266369cacb50d253d100302883b6bb}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Selection\+Operations@{slot\+Add\+Selection\+Operations}}
\index{slot\+Add\+Selection\+Operations@{slot\+Add\+Selection\+Operations}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Selection\+Operations()}{slotAddSelectionOperations()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Selection\+Operations (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+String\+List}]{\+\_\+operations\+List,  }\item[{Q\+String}]{\+\_\+category,  }\item[{Primitive\+Type}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+operations\+List} & List of operations \\
\hline
{\em \+\_\+category} & Category \\
\hline
{\em \+\_\+type} & primitive types \\
\hline
\end{DoxyParams}


Definition at line 1153 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a94262d46a5fd6e49a02505a51fa57a16}\label{classSelectionInterface_a94262d46a5fd6e49a02505a51fa57a16}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Add\+Selection\+Parameters@{slot\+Add\+Selection\+Parameters}}
\index{slot\+Add\+Selection\+Parameters@{slot\+Add\+Selection\+Parameters}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Add\+Selection\+Parameters()}{slotAddSelectionParameters()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Add\+Selection\+Parameters (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{Q\+Widget $\ast$}]{\+\_\+widget,  }\item[{Q\+String}]{\+\_\+category,  }\item[{Primitive\+Type}]{\+\_\+type = {\ttfamily 0u} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+widget} & The widget that controls the parameters \\
\hline
{\em \+\_\+category} & Category \\
\hline
{\em \+\_\+type} & primitive types \\
\hline
\end{DoxyParams}


Definition at line 1162 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_acc0da8cf5e115de8c4ae239ab6b364c1}\label{classSelectionInterface_acc0da8cf5e115de8c4ae239ab6b364c1}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Closest\+Boundary\+Selection@{slot\+Closest\+Boundary\+Selection}}
\index{slot\+Closest\+Boundary\+Selection@{slot\+Closest\+Boundary\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Closest\+Boundary\+Selection()}{slotClosestBoundarySelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Closest\+Boundary\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a closest boundary selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user clicks on an object and the primitives at the closest boundary get selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_aad870540ec0272106b71827aabbfc021}{Mesh\+Object\+Selection\+Plugin}.



Definition at line 793 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a2c0a078cf6f639459abb4e07c97f72e2}\label{classSelectionInterface_a2c0a078cf6f639459abb4e07c97f72e2}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Components\+Selection@{slot\+Components\+Selection}}
\index{slot\+Components\+Selection@{slot\+Components\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Components\+Selection()}{slotComponentsSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Components\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a connected components selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user clicks on an object and all primitives that are connected to the clicked primitive are selected as well.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a738301732e5ea55ea68db39bb9950a6e}{Mesh\+Object\+Selection\+Plugin}.



Definition at line 818 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a9abba4b8153a4df376effcd102f9b50b}\label{classSelectionInterface_a9abba4b8153a4df376effcd102f9b50b}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Components\+Selection\+Mode@{slot\+Components\+Selection\+Mode}}
\index{slot\+Components\+Selection\+Mode@{slot\+Components\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Components\+Selection\+Mode()}{slotComponentsSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Components\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1119 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a7d63e34dc51bd959efad1a20219196db}\label{classSelectionInterface_a7d63e34dc51bd959efad1a20219196db}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Custom\+Selection@{slot\+Custom\+Selection}}
\index{slot\+Custom\+Selection@{slot\+Custom\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Custom\+Selection()}{slotCustomSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Custom\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{Q\+String}]{\+\_\+custom\+Identifier,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a custom selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+custom\+Identifier} & Holds the identifier of the custom selection modes \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classVolumeMeshSelectionPlugin_a95dfd8bc25f728748ea901ae77f90995}{Volume\+Mesh\+Selection\+Plugin}.



Definition at line 830 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a31d7ad7aaa0929fa38b660f6361ea338}\label{classSelectionInterface_a31d7ad7aaa0929fa38b660f6361ea338}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Flood\+Fill\+Selection@{slot\+Flood\+Fill\+Selection}}
\index{slot\+Flood\+Fill\+Selection@{slot\+Flood\+Fill\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Flood\+Fill\+Selection()}{slotFloodFillSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Flood\+Fill\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a flood fill selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user clicks on an object and all primitives close to this point get selected, if the angle between the clicked point and the next point does not differ more than the specified angle.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a6dc5dce5ac7939c522385024c0b25075}{Mesh\+Object\+Selection\+Plugin}, and \hyperlink{classVolumeMeshSelectionPlugin_a9e724b7907615b5d4db498f95680ef56}{Volume\+Mesh\+Selection\+Plugin}.



Definition at line 806 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ace92f49e968f051320b0e0d1a78dfe38}\label{classSelectionInterface_ace92f49e968f051320b0e0d1a78dfe38}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Get\+Active\+Data\+Types@{slot\+Get\+Active\+Data\+Types}}
\index{slot\+Get\+Active\+Data\+Types@{slot\+Get\+Active\+Data\+Types}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Get\+Active\+Data\+Types()}{slotGetActiveDataTypes()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Get\+Active\+Data\+Types (\begin{DoxyParamCaption}\item[{Type\+List \&}]{\+\_\+types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+types} & Returns the active types \\
\hline
\end{DoxyParams}


Definition at line 1132 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a774e42fbdf8dea56314fa25235c4c5ed}\label{classSelectionInterface_a774e42fbdf8dea56314fa25235c4c5ed}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Get\+Active\+Primitive\+Type@{slot\+Get\+Active\+Primitive\+Type}}
\index{slot\+Get\+Active\+Primitive\+Type@{slot\+Get\+Active\+Primitive\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Get\+Active\+Primitive\+Type()}{slotGetActivePrimitiveType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Get\+Active\+Primitive\+Type (\begin{DoxyParamCaption}\item[{Primitive\+Type \&}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+type} & Returns the active primitive types \\
\hline
\end{DoxyParams}


Definition at line 1138 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a999542653d36b5791117fb59e583e4d4}\label{classSelectionInterface_a999542653d36b5791117fb59e583e4d4}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Key\+Shortcut\+Event@{slot\+Key\+Shortcut\+Event}}
\index{slot\+Key\+Shortcut\+Event@{slot\+Key\+Shortcut\+Event}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Key\+Shortcut\+Event}{slotKeyShortcutEvent}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Key\+Shortcut\+Event (\begin{DoxyParamCaption}\item[{int}]{\+\_\+key,  }\item[{Qt\+::\+Keyboard\+Modifiers}]{\+\_\+modifiers }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



One of the previously registered keys has been pressed. 

This slot is called whenever the user has pressed one of the registered keys. Note that this is actually handled by the selection base plugin since the different plugins might want to register the same key multiple times.


\begin{DoxyParams}{Parameters}
{\em \+\_\+key} & The pressed key \\
\hline
{\em \+\_\+modifiers} & Indicates whether mod-\/keys have been pressed synchronously \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a1ad2ab099d6108682a7eb00e1472ee01}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_a7d5ff3507ef53a8be462319be58d8ff9}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_a98ed7763cfdc195c603184f64a5a3cc9}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_a0f58d0d0f31f16355e6d6e05d63586c7}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_a4bf4cc2a08b12e70def445f02d5b3fbb}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a0586486505d3122b7e4a0d492b9a9ee0}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_a011f8bcf08ac8be2a46b54e703db5484}{Poly\+Line\+Selection\+Plugin}.



Definition at line 562 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a7538f8a7bcf7e768e2c9d8a23a4b8e2e}\label{classSelectionInterface_a7538f8a7bcf7e768e2c9d8a23a4b8e2e}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Lasso\+Selection@{slot\+Lasso\+Selection}}
\index{slot\+Lasso\+Selection@{slot\+Lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Lasso\+Selection()}{slotLassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a lasso selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user draws a polygonal line and all primitives which are {\bfseries visible} get selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_ade283f224cd07e99291c4bf5e301b124}{Mesh\+Object\+Selection\+Plugin}, and \hyperlink{classSplatCloudObjectSelectionPlugin_a24fff64243e597295bc5c0a13d3565fd}{Splat\+Cloud\+Object\+Selection\+Plugin}.



Definition at line 739 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a916a266bea486f7f4d867e8bc9f2014f}\label{classSelectionInterface_a916a266bea486f7f4d867e8bc9f2014f}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Load\+Selection@{slot\+Load\+Selection}}
\index{slot\+Load\+Selection@{slot\+Load\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Load\+Selection}{slotLoadSelection}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Load\+Selection (\begin{DoxyParamCaption}\item[{const \hyperlink{classINIFile}{I\+N\+I\+File} \&}]{\+\_\+file }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Load selection for specific objects in the scene. 

Open\+Flipper allows for saving of selections in an I\+NI file (implemented by the different selection plugins by overriding function \hyperlink{classSelectionInterface_a1c9f790d2cdb9c72a203b1cbd12828e2}{slot\+Save\+Selection()}). So this slot is called each time such I\+NI file is about to be loaded.


\begin{DoxyParams}{Parameters}
{\em \+\_\+file} & The file from which one can read the selection data \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a369c2a02710d5e03fa5966d7bfdd6773}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_a34ffc0f58385a01599b95d2f58b37a3b}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_a995c9677f81533bf8994800a6aad39ae}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_aff8b66a5c1ad529a116ab98ef7ccdab3}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_ae74e9325f6fd561e44987bf93d5748fb}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a7a3caac77879245793fcfb19e0dc57fe}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_a6ad0de93a3fd4a0bce7ad9c8fd0acc29}{Poly\+Line\+Selection\+Plugin}.



Definition at line 465 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a08d57cfb2ffecce58d36b328dd929907}\label{classSelectionInterface_a08d57cfb2ffecce58d36b328dd929907}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Register\+Key\+Shortcut@{slot\+Register\+Key\+Shortcut}}
\index{slot\+Register\+Key\+Shortcut@{slot\+Register\+Key\+Shortcut}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Register\+Key\+Shortcut()}{slotRegisterKeyShortcut()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Register\+Key\+Shortcut (\begin{DoxyParamCaption}\item[{int}]{\+\_\+key,  }\item[{Qt\+::\+Keyboard\+Modifiers}]{\+\_\+modifiers }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+key} & Key to use \\
\hline
{\em \+\_\+modifiers} & Modifier for this key \\
\hline
\end{DoxyParams}


Definition at line 1126 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a30545a19469659ac700529dfa3d4cc69}\label{classSelectionInterface_a30545a19469659ac700529dfa3d4cc69}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Register\+Type@{slot\+Register\+Type}}
\index{slot\+Register\+Type@{slot\+Register\+Type}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Register\+Type()}{slotRegisterType()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Register\+Type (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{\hyperlink{classDataType}{Data\+Type}}]{\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & Handle of the selection mode \\
\hline
{\em \+\_\+type} & Datatype to register \\
\hline
\end{DoxyParams}


Definition at line 1016 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a1c9f790d2cdb9c72a203b1cbd12828e2}\label{classSelectionInterface_a1c9f790d2cdb9c72a203b1cbd12828e2}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Save\+Selection@{slot\+Save\+Selection}}
\index{slot\+Save\+Selection@{slot\+Save\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Save\+Selection()}{slotSaveSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Save\+Selection (\begin{DoxyParamCaption}\item[{\hyperlink{classINIFile}{I\+N\+I\+File} \&}]{\+\_\+file }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Save selection for all objects in the scene. 

Override this slot in order to save selections for a specific data type. These selections are then stored within an I\+NI file and can be loaded via \hyperlink{classSelectionInterface_a916a266bea486f7f4d867e8bc9f2014f}{slot\+Load\+Selection()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+file} & The file into which one can store selection data \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_abab87c229d53e80398f1ddba4ed485fe}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_a3897abae4b2335e61cf6e15b727a0225}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_a6e92418db46b2c8ed239e53322c60e01}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_a5fd74a1fcf2e945582ce4d2885be4a7d}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_a1d4104b9cc8ef4c754a3795854bf0def}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a37281d4c6a2d1eb1e761621ad1370c9b}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_aac10f7984c7247b5c4bcd2346ed25e38}{Poly\+Line\+Selection\+Plugin}.



Definition at line 475 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a7062634e1ff05505d013ca5716a3a848}\label{classSelectionInterface_a7062634e1ff05505d013ca5716a3a848}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Selection\+Operation@{slot\+Selection\+Operation}}
\index{slot\+Selection\+Operation@{slot\+Selection\+Operation}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Selection\+Operation}{slotSelectionOperation}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Selection\+Operation (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+operation }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



A specific operation is requested. 

This slot is called each time the user has pressed one of the operations buttons (for the various primitive types) offered in the tool box.


\begin{DoxyParams}{Parameters}
{\em \+\_\+operation} & The identifier of the operation just as registered via add\+Selection\+Operations \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_aeb16a55ef7df369a7828622e96f2eb51}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_af9433a446a14faa21d85bf47049177da}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_ad15fc9ddbb5d09eae3b1ff7be76959db}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_ad9339e4867e457244e8849bff8fd3ff9}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_a239acbd5af88d7960cb871bc4cb6ae77}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a2cb54f3059170c9303ddc29f9548cb53}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_a6fb70043b7bc4359eeeb2f38da74b3db}{Poly\+Line\+Selection\+Plugin}.



Definition at line 669 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a6b39a77ac702a6ee49c5fd3f58458c82}\label{classSelectionInterface_a6b39a77ac702a6ee49c5fd3f58458c82}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Closest\+Boundary\+Selection\+Mode@{slot\+Show\+Closest\+Boundary\+Selection\+Mode}}
\index{slot\+Show\+Closest\+Boundary\+Selection\+Mode@{slot\+Show\+Closest\+Boundary\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Closest\+Boundary\+Selection\+Mode()}{slotShowClosestBoundarySelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Closest\+Boundary\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1103 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ab1a248611a93d403c60e9e992cc3f879}\label{classSelectionInterface_ab1a248611a93d403c60e9e992cc3f879}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Flood\+Fill\+Selection\+Mode@{slot\+Show\+Flood\+Fill\+Selection\+Mode}}
\index{slot\+Show\+Flood\+Fill\+Selection\+Mode@{slot\+Show\+Flood\+Fill\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Flood\+Fill\+Selection\+Mode()}{slotShowFloodFillSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Flood\+Fill\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1111 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a6d962b49b0a2ef07d6d9d6e5963852f2}\label{classSelectionInterface_a6d962b49b0a2ef07d6d9d6e5963852f2}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Lasso\+Selection\+Mode@{slot\+Show\+Lasso\+Selection\+Mode}}
\index{slot\+Show\+Lasso\+Selection\+Mode@{slot\+Show\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Lasso\+Selection\+Mode()}{slotShowLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1071 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a550767135232bd7ab7f07202cc3e0d02}\label{classSelectionInterface_a550767135232bd7ab7f07202cc3e0d02}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Sphere\+Selection\+Mode@{slot\+Show\+Sphere\+Selection\+Mode}}
\index{slot\+Show\+Sphere\+Selection\+Mode@{slot\+Show\+Sphere\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Sphere\+Selection\+Mode()}{slotShowSphereSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Sphere\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1095 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a30c46ccf46a510a47b27a6875adb82c7}\label{classSelectionInterface_a30c46ccf46a510a47b27a6875adb82c7}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Surface\+Lasso\+Selection\+Mode@{slot\+Show\+Surface\+Lasso\+Selection\+Mode}}
\index{slot\+Show\+Surface\+Lasso\+Selection\+Mode@{slot\+Show\+Surface\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Surface\+Lasso\+Selection\+Mode()}{slotShowSurfaceLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Surface\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1087 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a99c338ea8773c3107987c539527d7436}\label{classSelectionInterface_a99c338ea8773c3107987c539527d7436}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Toggle\+Selection\+Mode@{slot\+Show\+Toggle\+Selection\+Mode}}
\index{slot\+Show\+Toggle\+Selection\+Mode@{slot\+Show\+Toggle\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Toggle\+Selection\+Mode()}{slotShowToggleSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Toggle\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1063 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a859c672fc89b458ded27fa115d7177ef}\label{classSelectionInterface_a859c672fc89b458ded27fa115d7177ef}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Show\+Volume\+Lasso\+Selection\+Mode@{slot\+Show\+Volume\+Lasso\+Selection\+Mode}}
\index{slot\+Show\+Volume\+Lasso\+Selection\+Mode@{slot\+Show\+Volume\+Lasso\+Selection\+Mode}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Show\+Volume\+Lasso\+Selection\+Mode()}{slotShowVolumeLassoSelectionMode()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Show\+Volume\+Lasso\+Selection\+Mode (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+handle\+Name,  }\item[{bool}]{\+\_\+show,  }\item[{Primitive\+Type}]{\+\_\+associated\+Types }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+handle\+Name} & handle of the mode \\
\hline
{\em \+\_\+show} & Hide or show it \\
\hline
{\em \+\_\+associated\+Types} & Types associated with this mode \\
\hline
\end{DoxyParams}


Definition at line 1079 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a4e693dc4deade5738d7b13fce787b4f7}\label{classSelectionInterface_a4e693dc4deade5738d7b13fce787b4f7}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Sphere\+Selection@{slot\+Sphere\+Selection}}
\index{slot\+Sphere\+Selection@{slot\+Sphere\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Sphere\+Selection()}{slotSphereSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Sphere\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{double}]{\+\_\+radius,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a sphere selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user draws the selection with a sphere. All primitives inside the current sphere get selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+radius} & The current radius of the selection sphere \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a98aad925033a98c2c52f18d096a693bf}{Mesh\+Object\+Selection\+Plugin}, and \hyperlink{classSplatCloudObjectSelectionPlugin_a2bb72b23f42f500ffd8bb9d1cdafa956}{Splat\+Cloud\+Object\+Selection\+Plugin}.



Definition at line 780 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aac8e68421f7d02bc2f192e7b025ac6f2}\label{classSelectionInterface_aac8e68421f7d02bc2f192e7b025ac6f2}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Surface\+Lasso\+Selection@{slot\+Surface\+Lasso\+Selection}}
\index{slot\+Surface\+Lasso\+Selection@{slot\+Surface\+Lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Surface\+Lasso\+Selection()}{slotSurfaceLassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Surface\+Lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a surface lasso selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user draws a polygonal line on the surface of an object and all primitives which are insinde the surface patch defined by the line get selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 766 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_aac41163b7f7d7af623ff948e85b6c97b}\label{classSelectionInterface_aac41163b7f7d7af623ff948e85b6c97b}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Target\+Objects\+Only@{slot\+Target\+Objects\+Only}}
\index{slot\+Target\+Objects\+Only@{slot\+Target\+Objects\+Only}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Target\+Objects\+Only()}{slotTargetObjectsOnly()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Target\+Objects\+Only (\begin{DoxyParamCaption}\item[{bool \&}]{\+\_\+targets\+Only }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}

Do not use. Implemented in \hyperlink{classSelectionBasePlugin}{Selection\+Base\+Plugin}


\begin{DoxyParams}{Parameters}
{\em \+\_\+targets\+Only} & use target objects only \\
\hline
\end{DoxyParams}


Definition at line 1144 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_adb1742f2f116da187a34a82ec0880300}\label{classSelectionInterface_adb1742f2f116da187a34a82ec0880300}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Toggle\+Selection@{slot\+Toggle\+Selection}}
\index{slot\+Toggle\+Selection@{slot\+Toggle\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Toggle\+Selection}{slotToggleSelection}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Toggle\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Called whenever the user performs a toggle selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that occurred \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_a51b5e193bc7be9ffa61fa4f56f9ad7fc}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_a8a22b9dfdc2ccae6023350a4ae418d8c}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_a9bbb8df6d07775768975da4f450f7504}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_a9ca52ac85b9849b4795daeed0058a83d}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_a147c94a30e5aa25fa8dcb724a520a3db}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a5600c5bf62454c4e5a59dc6909112fec}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_abc9e61402a57ff1f1f4d84216f1c21f4}{Poly\+Line\+Selection\+Plugin}.



Definition at line 726 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_ac0195511eef6d4f9e42218feac3e124b}\label{classSelectionInterface_ac0195511eef6d4f9e42218feac3e124b}} 
\index{Selection\+Interface@{Selection\+Interface}!slot\+Volume\+Lasso\+Selection@{slot\+Volume\+Lasso\+Selection}}
\index{slot\+Volume\+Lasso\+Selection@{slot\+Volume\+Lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{slot\+Volume\+Lasso\+Selection()}{slotVolumeLassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::slot\+Volume\+Lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}, {\ttfamily [virtual]}}



Called whenever the user performs a volume lasso selection. 

This has to be implemented by each type selection plugin if this interactive selection mode should be provided. The metaphor behind it is that the user draws a polygonal line and all primitives which are insinde the volume spanned by the eye position and the polygon get selected.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classMeshObjectSelectionPlugin_ae6ff55442beeb8600811f40ebc02d95c}{Mesh\+Object\+Selection\+Plugin}, \hyperlink{classSplatCloudObjectSelectionPlugin_a5026fea37efedfca75d4345588c94507}{Splat\+Cloud\+Object\+Selection\+Plugin}, \hyperlink{classVolumeMeshSelectionPlugin_aaa00a8aacbe4c0c91f7c5257bf000ed4}{Volume\+Mesh\+Selection\+Plugin}, \hyperlink{classBSplineCurveSelectionPlugin_aac05fbde5660a987a9d5a803f3d7b8e7}{B\+Spline\+Curve\+Selection\+Plugin}, \hyperlink{classBSplineSurfaceSelectionPlugin_aea88d52b60d08b28b77032c9e76eff06}{B\+Spline\+Surface\+Selection\+Plugin}, \hyperlink{classObjectSelectionPlugin_a0b3f112ea33ace40700ec842716aace8}{Object\+Selection\+Plugin}, and \hyperlink{classPolyLineSelectionPlugin_a67e3a683bf29dd124f03d776d16a6d23}{Poly\+Line\+Selection\+Plugin}.



Definition at line 752 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a01e134bd76da2babfe6c566667a79386}\label{classSelectionInterface_a01e134bd76da2babfe6c566667a79386}} 
\index{Selection\+Interface@{Selection\+Interface}!sphere\+Selection@{sphere\+Selection}}
\index{sphere\+Selection@{sphere\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{sphere\+Selection()}{sphereSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::sphere\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{double}]{\+\_\+radius,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a sphere selection. 

This connects to \hyperlink{classSelectionInterface_a4e693dc4deade5738d7b13fce787b4f7}{slot\+Sphere\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+radius} & The current radius of the selection sphere \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 911 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a33fd583989c1c3a0b0c10d216626a712}\label{classSelectionInterface_a33fd583989c1c3a0b0c10d216626a712}} 
\index{Selection\+Interface@{Selection\+Interface}!surface\+Lasso\+Selection@{surface\+Lasso\+Selection}}
\index{surface\+Lasso\+Selection@{surface\+Lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{surface\+Lasso\+Selection()}{surfaceLassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::surface\+Lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a surface lasso selection. 

This connects to \hyperlink{classSelectionInterface_aac8e68421f7d02bc2f192e7b025ac6f2}{slot\+Surface\+Lasso\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 899 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}\label{classSelectionInterface_a181b445c8fdbd8dd1934c5be6cabed80}} 
\index{Selection\+Interface@{Selection\+Interface}!target\+Objects\+Only@{target\+Objects\+Only}}
\index{target\+Objects\+Only@{target\+Objects\+Only}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{target\+Objects\+Only()}{targetObjectsOnly()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::target\+Objects\+Only (\begin{DoxyParamCaption}\item[{bool \&}]{\+\_\+targets\+Only }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Indicates whether selection should be performed on target objects only. 

Self-\/explanatory


\begin{DoxyParams}{Parameters}
{\em \+\_\+targets\+Only} & True if selection should restrict to target objects \\
\hline
\end{DoxyParams}


Definition at line 412 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a1ac8c2f1b526f635b2bc380d300aad09}\label{classSelectionInterface_a1ac8c2f1b526f635b2bc380d300aad09}} 
\index{Selection\+Interface@{Selection\+Interface}!toggle\+Selection@{toggle\+Selection}}
\index{toggle\+Selection@{toggle\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{toggle\+Selection()}{toggleSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::toggle\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a toggle selection. 

This connects to \hyperlink{classSelectionInterface_adb1742f2f116da187a34a82ec0880300}{slot\+Toggle\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 866 of file Selection\+Interface.\+hh.

\mbox{\Hypertarget{classSelectionInterface_a0b5fa1eab50587c0eb78d0129a279cf6}\label{classSelectionInterface_a0b5fa1eab50587c0eb78d0129a279cf6}} 
\index{Selection\+Interface@{Selection\+Interface}!volume\+Lasso\+Selection@{volume\+Lasso\+Selection}}
\index{volume\+Lasso\+Selection@{volume\+Lasso\+Selection}!Selection\+Interface@{Selection\+Interface}}
\subsubsection{\texorpdfstring{volume\+Lasso\+Selection()}{volumeLassoSelection()}}
{\footnotesize\ttfamily virtual void Selection\+Interface\+::volume\+Lasso\+Selection (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event,  }\item[{Primitive\+Type}]{\+\_\+current\+Type,  }\item[{bool}]{\+\_\+deselect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Emitted by selection base plugin whenever the user performs a volume lasso selection. 

This connects to \hyperlink{classSelectionInterface_ac0195511eef6d4f9e42218feac3e124b}{slot\+Volume\+Lasso\+Selection()} which has to be implemented by each type selection plugin if this interactive selection mode should be provided.


\begin{DoxyParams}{Parameters}
{\em \+\_\+event} & The mouse event that currently is performed \\
\hline
{\em \+\_\+current\+Type} & The currently active primitive type \\
\hline
{\em \+\_\+deselect} & True if entities should be deselected \\
\hline
\end{DoxyParams}


Definition at line 888 of file Selection\+Interface.\+hh.



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