Developer Documentation
SelectionInterface Class Reference

Interface for all plugins which want to use selection functions. More...

#include <OpenFlipper/BasePlugin/SelectionInterface.hh>

Inheritance diagram for SelectionInterface:
BSplineCurveSelectionPlugin BSplineSurfaceSelectionPlugin MeshObjectSelectionPlugin ObjectSelectionPlugin PolyLineSelectionPlugin SelectionBasePlugin SplatCloudObjectSelectionPlugin VolumeMeshSelectionPlugin

Public Types

typedef std::vector< DataTypeTypeList
 
typedef unsigned int PrimitiveType
 

Public Member Functions

virtual ~SelectionInterface ()
 Destructor.
 

Registering Selection Environments and primitives

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 DataTypes.

You Register the Environment via addSelectionEnvironment(). Afterwards you can register DataTypes to the previously created environment with registerType(). The selection interactions defined in the environment will only be available, if the registered DataTypes exist.

Each DataType can consist of different primitives (e.g. a mesh usually consists of vertices edges and faces). Use addPrimitiveType() 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:

emit addSelectionEnvironment("Mesh Object Selections", "Select Triangle Mesh Primitives.",
someIconPath + "mesh_selection.png", environmentHandle_);

Now, our handle to the newly created environment is in environmentHandle_. We should now see a new tab widget in the selection base tool box displaying our selection environment:

selectionEnvironment.png

We now want to register a specific data type for which we want to enable selection. Say DATA_TRIANGLE_MESH:

emit registerType(environmentHandle_, DATA_TRIANGLE_MESH);

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:

emit addPrimitiveType(environmentHandle_, "Select Vertices", iconPath + "vertexType.png", vertexType_);
emit addPrimitiveType(environmentHandle_, "Select Edges", iconPath + "edgeType.png", edgeType_);
emit addPrimitiveType(environmentHandle_, "Select Faces", iconPath + "faceType.png", faceType_);

The three variables of type SelectionInterface::PrimitiveType vertexType_, edgeType_ and faceType_ 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's tool box:

selectionPrimitives.png

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.

virtual void registerType (QString _handleName, DataType _type)
 Register data type for a selection environment. More...
 
virtual void addPrimitiveType (QString _handleName, QString _name, QString _icon, PrimitiveType &_typeHandle)
 Provide selection for primitives other than the standard ones. More...
 
virtual void addSelectionEnvironment (QString _modeName, QString _description, QString _icon, QString &_handleName)
 Add a selection environment in order to provide selection functions for specific data type(s) More...
 

Enabling Selection Metaphors

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 addCustomSelectionMode().

To continue the above example, we now want to make toggle, volume lasso as well a custom selection mode available for our data types:

emit showToggleSelectionMode(environmentHandle_, true, vertexType_ | edgeType_ | faceType_);
emit showVolumeLassoSelectionMode(environmentHandle_, true, vertexType_ | edgeType_ | faceType_);
emit addCustomSelectionMode(environmentHandle_, "My Custom Selection", "Description of my mode", someIconFile, vertexType_ | edgeType_);

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'ed. The selection metaphors as well as the available primitive types will be displayed in the selection pick tool bar:

selectionPickbar.png

Now each time the user uses the toggle selection metaphor slotToggleSelection() is called. See below for code examples on this.

virtual void showLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show lasso selection mode in a specified selection environment. More...
 
virtual void showVolumeLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show volume lasso selection mode in a specified selection environment. More...
 
virtual void showSurfaceLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show surface lasso selection mode in a specified selection environment. More...
 
virtual void showSphereSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show sphere selection mode in a specified selection environment. More...
 
virtual void showClosestBoundarySelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show closest boundary selection mode in a specified selection environment. More...
 
virtual void showFloodFillSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show flood fill selection mode in a specified selection environment. More...
 
virtual void showComponentsSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show connected components selection mode in a specified selection environment. More...
 
virtual void addCustomSelectionMode (QString _handleName, QString _modeName, QString _description, QString _icon, PrimitiveType _associatedTypes, QString &_customIdentifier)
 Add a custom interactive selection mode. More...
 
virtual void addCustomSelectionMode (QString _handleName, QString _modeName, QString _description, QString _icon, PrimitiveType _associatedTypes, QString &_customIdentifier, DataType _objectTypeRestriction)
 Add a custom interactive selection mode. More...
 
virtual void showToggleSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 Show toggle selection mode in a specified selection environment. More...
 

States of the selection system.

You can get the active data types, primitive types and if only target objects should be affected.

virtual void getActiveDataTypes (TypeList &_types)
 Get the data types that the currently active selection environment supports. More...
 
virtual void getActivePrimitiveType (PrimitiveType &_type)
 Get the primitive type that is selected. More...
 
virtual void targetObjectsOnly (bool &_targetsOnly)
 Indicates whether selection should be performed on target objects only. More...
 

File Interaction

Store and load selection data in an INI file. In the above example we would want something like this in order to store the current selection:

void MySelectionPlugin::slotSaveSelection(INIFile& _file) {
// Iterate over all triangle meshes and save
// the selections for all entity types
o_it != PluginFunctions::objectsEnd(); ++o_it) {
// Create section for each object
// Append object name to section identifier
QString section = QString("TriangleMeshSelection") + "//" + o_it->name();
if(!_file.section_exists(section)) {
_file.add_section(section);
} else {
continue;
}
// Store vertex selection
_file.add_entry(section, "VertexSelection", getVertexSelection(o_it->id()));
// Store edge selection
_file.add_entry(section, "EdgeSelection", getEdgeSelection(o_it->id()));
// Store face selection
_file.add_entry(section, "FaceSelection", getFaceSelection(o_it->id()));
}
}

This works analogously for loading selections.

virtual void slotLoadSelection (const INIFile &_file)
 Load selection for specific objects in the scene. More...
 
virtual void slotSaveSelection (INIFile &_file)
 Save selection for all objects in the scene. More...
 
virtual void loadSelection (int _objId, const QString &_filename)
 Scripting slot for loading selections. More...
 

Keyboard Interactions

Register keyboard shortcuts for your selection plugin by emitting the registerKeyShortcut() slot. For example:

// Select (a)ll, Control + A keys
emit registerKeyShortcut(Qt::Key_A, Qt::ControlModifier);
// (C)lear selection, C key
emit registerKeyShortcut(Qt::Key_C, Qt::NoModifier);

Now if the user presses a key, we can handle this by overriding slotKeyShortcutEvent(). Don't forget to test whether at least one of the registered primitives is active and whether we want to restrict to target objects only:

void MySelectionPlugin::slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers) {
SelectionInterface::PrimitiveType type = 0u;
if((type & (vertexType_ | edgeType_ | faceType_)) == 0) {
// No supported type is active
return;
}
bool targetsOnly = false;
emit targetObjectsOnly(targetsOnly);
// And so on...
}
virtual void registerKeyShortcut (int _key, Qt::KeyboardModifiers _modifiers=Qt::NoModifier)
 Register key shortcut. More...
 
virtual void slotKeyShortcutEvent (int _key, Qt::KeyboardModifiers _modifiers)
 One of the previously registered keys has been pressed. More...
 

User Interface controls

In many cases it is desired to offer selection operations such as "select all vertices" or "invert edge selection". For this purpose, use the addSelectionOperations() slot. In our example, we now add some of these functions using the following code:

QStringList vertexOperations;
vertexOperations.append("Select All Vertices");
vertexOperations.append("Invert Vertex Selection");
vertexOperations.append("Delete All Selected Vertices");
emit addSelectionOperations(environmentHandle_, vertexOperations, "Vertex Operations");

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

selectionOperations.png

The user can now perform these operations by simply clicking the buttons. Each time one of the buttons has been pressed, slotSelectionOperation() is called. You will have to override this in order to provide such operations.

An example would be:

void MySelectionPlugin::slotSelectionOperation(QString _operation) {
SelectionInterface::PrimitiveType type = 0u;
// If none of our primitives is currently active
if((type & (vertexType_ | edgeType_ | faceType_)) == 0)
return;
// Test if operation should be applied to target objects only
bool targetsOnly = false;
emit targetObjectsOnly(targetsOnly);
if(_operation == "Select All Vertices") {
o_it != PluginFunctions::objectsEnd(); ++o_it) {
if (o_it->visible()) {
selectAllVertices(o_it->id());
}
// Don't forget this in order to update the render buffers
emit updatedObject(o_it->id(), UPDATE_SELECTION);
}
}
// ...and so on...
}
virtual void addSelectionParameters (QString _handleName, QWidget *_widget, QString _category, PrimitiveType _type=0u)
 Add interactive selection parameters for a specific primitive type. More...
 
virtual void addSelectionOperations (QString _handleName, QStringList _operationsList, QString _category, PrimitiveType _type=0u)
 Add non-interactive selection operations for a specific primitive type. More...
 
virtual void slotSelectionOperation (QString _operation)
 A specific operation is requested. More...
 

Slots which have to be implemented to use the global interaction metaphors

If you enabled selection metaphors for your environment via the 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:

void MySelectionPlugin::slotToggleSelection(QPoint _mousePosition, PrimitiveType _currentType, bool _deselect) {
// Return if none of the currently active types is handled by this plugin
if((_currentType & (vertexType_ | edgeType_ | faceType_)) == 0) return;
// Only toggle target objects if requested
bool targetsOnly = false;
emit targetObjectsOnly(targetsOnly);
// Do the picking...
// ...and the actual selection
if(_currentType & vertexType_) {
// Vertex selection
}
if(_currentType & edgeType_) {
// Edge selection
}
// ...and so on...
}
virtual void slotToggleSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a toggle selection. More...
 
virtual void slotLassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a lasso selection. More...
 
virtual void slotVolumeLassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a volume lasso selection. More...
 
virtual void slotSurfaceLassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a surface lasso selection. More...
 
virtual void slotSphereSelection (QMouseEvent *_event, double _radius, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a sphere selection. More...
 
virtual void slotClosestBoundarySelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a closest boundary selection. More...
 
virtual void slotFloodFillSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a flood fill selection. More...
 
virtual void slotComponentsSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Called whenever the user performs a connected components selection. More...
 
virtual void slotCustomSelection (QMouseEvent *_event, PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
 Called whenever the user performs a custom selection. More...
 

Signals emitted by the SelectionBasePlugin

The following signals are emitted by the selection base plugin. You should not use them!

virtual void toggleSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a toggle selection. More...
 
virtual void lassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a lasso selection. More...
 
virtual void volumeLassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a volume lasso selection. More...
 
virtual void surfaceLassoSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a surface lasso selection. More...
 
virtual void sphereSelection (QMouseEvent *_event, double _radius, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a sphere selection. More...
 
virtual void closestBoundarySelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a closest boundary selection. More...
 
virtual void floodFillSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a flood fill selection. More...
 
virtual void componentsSelection (QMouseEvent *_event, PrimitiveType _currentType, bool _deselect)
 Emitted by selection base plugin whenever the user performs a connected components selection. More...
 
virtual void customSelection (QMouseEvent *_event, PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
 Emitted by selection base plugin whenever the user performs a custom selection. More...
 
virtual void loadSelection (const INIFile &_file)
 Load selections from ini-file. More...
 
virtual void saveSelection (INIFile &_file)
 Save selections into ini-file. More...
 
virtual void keyShortcutEvent (int _key, Qt::KeyboardModifiers _modifiers=Qt::NoModifier)
 Key shortcut event happened. More...
 
virtual void selectionOperation (QString _operation)
 Emitted by selection base plugin when a non-interactive selection operation is requested. More...
 

Slots handled by the SelectionBasePlugin

The following slots are implemented by the selection base plugin. You should not use them!

virtual void slotAddSelectionEnvironment (QString _modeName, QString _description, QString _icon, QString &_handleName)
 Do not use. Implemented in SelectionBasePlugin. More...
 
virtual void slotRegisterType (QString _handleName, DataType _type)
 Do not use. Implemented in SelectionBasePlugin. More...
 
virtual void slotAddPrimitiveType (QString _handleName, QString _name, QString _icon, PrimitiveType &_typeHandle)
 Do not use. Implemented in SelectionBasePlugin. More...
 
virtual void slotAddCustomSelectionMode (QString _handleName, QString _modeName, QString _description, QString _icon, PrimitiveType _associatedTypes, QString &_customIdentifier)
 Do not use. Implemented in SelectionBasePlugin. More...
 
virtual void slotAddCustomSelectionMode (QString _handleName, QString _modeName, QString _description, QString _icon, PrimitiveType _associatedTypes, QString &_customIdentifier, DataType _objectTypeRestriction)
 Do not use. Implemented in SelectionBasePlugin. More...
 
virtual void slotShowToggleSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowVolumeLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowSurfaceLassoSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowSphereSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowClosestBoundarySelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotShowFloodFillSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotComponentsSelectionMode (QString _handleName, bool _show, PrimitiveType _associatedTypes)
 
virtual void slotRegisterKeyShortcut (int _key, Qt::KeyboardModifiers _modifiers)
 
virtual void slotGetActiveDataTypes (TypeList &_types)
 
virtual void slotGetActivePrimitiveType (PrimitiveType &_type)
 
virtual void slotTargetObjectsOnly (bool &_targetsOnly)
 
virtual void slotAddSelectionOperations (QString _handleName, QStringList _operationsList, QString _category, PrimitiveType _type)
 
virtual void slotAddSelectionParameters (QString _handleName, QWidget *_widget, QString _category, PrimitiveType _type=0u)
 

Detailed Description

Interface for all plugins which want to use selection functions.

Detailed description
Using this interface you can instruct the core to select objects and different primitive types.

Definition at line 67 of file SelectionInterface.hh.

Member Function Documentation

◆ addCustomSelectionMode() [1/2]

virtual void SelectionInterface::addCustomSelectionMode ( QString  _handleName,
QString  _modeName,
QString  _description,
QString  _icon,
PrimitiveType  _associatedTypes,
QString &  _customIdentifier 
)
inlinevirtual

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, slotCustomSelection(QMouseEvent*,QString) is called. This signal returns the added identifier for this selection mode in parameter _identifier.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_modeNameThe name of this mode (also button caption)
_descriptionA brief description of what the selection mode does
_iconPath to an icon which is used for this selection mode
_associatedTypesMake this mode available only for the specified types (OR'ed)
_customIdentifierHolds the identifier of the custom selection modes

Definition at line 349 of file SelectionInterface.hh.

◆ addCustomSelectionMode() [2/2]

virtual void SelectionInterface::addCustomSelectionMode ( QString  _handleName,
QString  _modeName,
QString  _description,
QString  _icon,
PrimitiveType  _associatedTypes,
QString &  _customIdentifier,
DataType  _objectTypeRestriction 
)
inlinevirtual

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, slotCustomSelection(QMouseEvent*,QString) is called. This signal returns the added identifier for this selection mode in parameter _identifier.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_modeNameThe name of this mode (also button caption)
_descriptionA brief description of what the selection mode does
_iconPath to an icon which is used for this selection mode
_associatedTypesMake this mode available only for the specified types (OR'ed)
_customIdentifierHolds the identifier of the custom selection modes
_objectTypeRestrictionRestrict the mode to this specific data type

Definition at line 371 of file SelectionInterface.hh.

◆ addPrimitiveType()

virtual void SelectionInterface::addPrimitiveType ( QString  _handleName,
QString  _name,
QString  _icon,
PrimitiveType &  _typeHandle 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment to which this type should be added
_nameThe name of the primitive type, e.g. "B-Spline Surface Control Point"
_iconPath to the icon for the primitive type
_typeHandleThe returned handle to the added primitive type

Definition at line 180 of file SelectionInterface.hh.

◆ addSelectionEnvironment

virtual void SelectionInterface::addSelectionEnvironment ( QString  _modeName,
QString  _description,
QString  _icon,
QString &  _handleName 
)
inlinevirtualsignal

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 registerType(QString,DataType). Use the returned _handleName for referencing the selection environment.

Parameters
_modeNameThe name of the selection mode, e.g. "Mesh Selection"
_descriptionThe description for the selection mode (also tooltip)
_iconPath to the icon for this mode (basically a type icon)
_handleNameThe handle of the recently added selection environment. Needed for referencing

Definition at line 155 of file SelectionInterface.hh.

◆ addSelectionOperations

virtual void SelectionInterface::addSelectionOperations ( QString  _handleName,
QStringList  _operationsList,
QString  _category,
PrimitiveType  _type = 0u 
)
inlinevirtualsignal

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 "Clear selection", "Invert", "Delete", etc. If one of this operations is requested, slotSelectionOperation(QString) is called. These functions are listed in categories which are mainly used to improve usability.

Parameters
_handleNameThe handle of the selection environment in which this operation should be available
_operationsListThe list of operations that can be performed for a given primitive type
_categoryThe category under which the specified operations will be listed
_typeThe primitive type for which the specified operations will be available (0u if operation should always be available)

Definition at line 646 of file SelectionInterface.hh.

◆ addSelectionParameters()

virtual void SelectionInterface::addSelectionParameters ( QString  _handleName,
QWidget *  _widget,
QString  _category,
PrimitiveType  _type = 0u 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this operation should be available
_widgetThe widget that shall be added for parameters enabled for a given primitive type
_categoryThe category under which the specified operations will be listed
_typeThe primitive type for which the specified operations will be available (0u if operation should always be available)

Definition at line 658 of file SelectionInterface.hh.

◆ closestBoundarySelection()

virtual void SelectionInterface::closestBoundarySelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotClosestBoundarySelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 922 of file SelectionInterface.hh.

◆ componentsSelection()

virtual void SelectionInterface::componentsSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotComponentsSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 944 of file SelectionInterface.hh.

◆ customSelection()

virtual void SelectionInterface::customSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
QString  _customIdentifier,
bool  _deselect 
)
inlinevirtual

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

This connects to slotCustomSelection(QMouseEvent*,QString) which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_customIdentifierHolds the identifier of the custom selection modes
_deselectTrue if entities should be deselected

Definition at line 956 of file SelectionInterface.hh.

◆ floodFillSelection()

virtual void SelectionInterface::floodFillSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotFloodFillSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 933 of file SelectionInterface.hh.

◆ getActiveDataTypes()

virtual void SelectionInterface::getActiveDataTypes ( TypeList &  _types)
inlinevirtual

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.

Parameters
_typesThe list of currently active data types

Definition at line 396 of file SelectionInterface.hh.

◆ getActivePrimitiveType()

virtual void SelectionInterface::getActivePrimitiveType ( PrimitiveType &  _type)
inlinevirtual

Get the primitive type that is selected.

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

Parameters
_typeId of selected primitive type

Definition at line 404 of file SelectionInterface.hh.

◆ keyShortcutEvent()

virtual void SelectionInterface::keyShortcutEvent ( int  _key,
Qt::KeyboardModifiers  _modifiers = Qt::NoModifier 
)
inlinevirtual

Key shortcut event happened.

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

Parameters
_keyKey to register
_modifiersKey modifiers (i.e. shift, control, meta keys, defaults to none)

Definition at line 987 of file SelectionInterface.hh.

◆ lassoSelection()

virtual void SelectionInterface::lassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotLassoSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 877 of file SelectionInterface.hh.

◆ loadSelection [1/2]

virtual void SelectionInterface::loadSelection ( int  _objId,
const QString &  _filename 
)
inlinevirtualslot

Scripting slot for loading selections.

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

Parameters
_objIdThe target object's id
_filenameThe file in which the data is stored

Definition at line 486 of file SelectionInterface.hh.

◆ loadSelection() [2/2]

virtual void SelectionInterface::loadSelection ( const INIFile _file)
inlinevirtual

Load selections from ini-file.

This signal is emitted by SelectionBase-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.

Parameters
_fileThe ini-file handle

Definition at line 967 of file SelectionInterface.hh.

◆ registerKeyShortcut

virtual void SelectionInterface::registerKeyShortcut ( int  _key,
Qt::KeyboardModifiers  _modifiers = Qt::NoModifier 
)
inlinevirtualsignal

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 ALL 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 getActivePrimitiveType(PrimitiveType&) ) is not handled by the type selection plugin.

Parameters
_keyKey to register
_modifiersKey modifiers (i.e. shift, control, meta keys, defaults to none)

Definition at line 548 of file SelectionInterface.hh.

◆ registerType()

virtual void SelectionInterface::registerType ( QString  _handleName,
DataType  _type 
)
inlinevirtual

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 registerType(environmentHandle,DATA_POLY_LINE) in order to enable polyline selections.

Parameters
_handleNameThe handle of the selection environment for this type
_typeThe data type that should be added

Definition at line 167 of file SelectionInterface.hh.

◆ saveSelection()

virtual void SelectionInterface::saveSelection ( INIFile _file)
inlinevirtual

Save selections into ini-file.

This signal is emitted by SelectionBase-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.

Parameters
_fileThe ini-file handle

Definition at line 978 of file SelectionInterface.hh.

◆ selectionOperation

virtual void SelectionInterface::selectionOperation ( QString  _operation)
inlinevirtualsignal

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

This connects to slot slotSelectionOperation and is called whenever a non-interactive selection operation is requested.

Parameters
_operationThe name of the requested operation

Definition at line 854 of file SelectionInterface.hh.

◆ showClosestBoundarySelectionMode()

virtual void SelectionInterface::showClosestBoundarySelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 303 of file SelectionInterface.hh.

◆ showComponentsSelectionMode()

virtual void SelectionInterface::showComponentsSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 329 of file SelectionInterface.hh.

◆ showFloodFillSelectionMode()

virtual void SelectionInterface::showFloodFillSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 316 of file SelectionInterface.hh.

◆ showLassoSelectionMode()

virtual void SelectionInterface::showLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 251 of file SelectionInterface.hh.

◆ showSphereSelectionMode()

virtual void SelectionInterface::showSphereSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 290 of file SelectionInterface.hh.

◆ showSurfaceLassoSelectionMode()

virtual void SelectionInterface::showSurfaceLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 277 of file SelectionInterface.hh.

◆ showToggleSelectionMode

virtual void SelectionInterface::showToggleSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtualsignal

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 238 of file SelectionInterface.hh.

◆ showVolumeLassoSelectionMode()

virtual void SelectionInterface::showVolumeLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlinevirtual

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.

Parameters
_handleNameThe handle of the selection environment in which this mode should be available
_showIndicates whether the mode should be available or not
_associatedTypesMake this mode available only for the specified types (OR'ed)

Definition at line 264 of file SelectionInterface.hh.

◆ slotAddCustomSelectionMode() [1/2]

virtual void SelectionInterface::slotAddCustomSelectionMode ( QString  _handleName,
QString  _modeName,
QString  _description,
QString  _icon,
PrimitiveType  _associatedTypes,
QString &  _customIdentifier 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin.

Do not use! Implemented in SelectionBasePlugin

Parameters
_handleNameHandle of the selection mode
_modeNameUser visible name of the selection mode
_descriptionDescription of the mode
_iconPath to an icon displayed in the selection toolbar
_associatedTypesprimitive types supported by this mode
_customIdentifierIdentifier of this mode

Definition at line 1040 of file SelectionInterface.hh.

◆ slotAddCustomSelectionMode() [2/2]

virtual void SelectionInterface::slotAddCustomSelectionMode ( QString  _handleName,
QString  _modeName,
QString  _description,
QString  _icon,
PrimitiveType  _associatedTypes,
QString &  _customIdentifier,
DataType  _objectTypeRestriction 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin.

Parameters
_handleNameHandle of the selection mode
_modeNameUser visible name of the selection mode
_descriptionDescription of the mode
_iconPath to an icon displayed in the selection toolbar
_associatedTypesprimitive types supported by this mode
_customIdentifierIdentifier of this mode
_objectTypeRestrictionObject types supported by this mode

Definition at line 1053 of file SelectionInterface.hh.

◆ slotAddPrimitiveType()

virtual void SelectionInterface::slotAddPrimitiveType ( QString  _handleName,
QString  _name,
QString  _icon,
PrimitiveType &  _typeHandle 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin.

Do not use! Implemented in SelectionBasePlugin

Parameters
_handleNameHandle of the selection mode
_nameUser visible name of the selection mode
_iconPath to an icon displayed in the selection toolbar
_typeHandleHandle for the type

Definition at line 1027 of file SelectionInterface.hh.

◆ slotAddSelectionEnvironment

virtual void SelectionInterface::slotAddSelectionEnvironment ( QString  _modeName,
QString  _description,
QString  _icon,
QString &  _handleName 
)
inlineprivatevirtualslot

Do not use. Implemented in SelectionBasePlugin.

Parameters
_modeNameUser visible name of the selection mode
_descriptionDescription of the mode
_iconPath to an icon displayed in the selection toolbar
_handleNameHandle of the selection mode

Definition at line 1009 of file SelectionInterface.hh.

◆ slotAddSelectionOperations()

virtual void SelectionInterface::slotAddSelectionOperations ( QString  _handleName,
QStringList  _operationsList,
QString  _category,
PrimitiveType  _type 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_operationsListList of operations
_categoryCategory
_typeprimitive types

Definition at line 1153 of file SelectionInterface.hh.

◆ slotAddSelectionParameters()

virtual void SelectionInterface::slotAddSelectionParameters ( QString  _handleName,
QWidget *  _widget,
QString  _category,
PrimitiveType  _type = 0u 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_widgetThe widget that controls the parameters
_categoryCategory
_typeprimitive types

Definition at line 1162 of file SelectionInterface.hh.

◆ slotClosestBoundarySelection()

virtual void SelectionInterface::slotClosestBoundarySelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin.

Definition at line 793 of file SelectionInterface.hh.

◆ slotComponentsSelection()

virtual void SelectionInterface::slotComponentsSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin.

Definition at line 818 of file SelectionInterface.hh.

◆ slotComponentsSelectionMode()

virtual void SelectionInterface::slotComponentsSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1119 of file SelectionInterface.hh.

◆ slotCustomSelection()

virtual void SelectionInterface::slotCustomSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
QString  _customIdentifier,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_customIdentifierHolds the identifier of the custom selection modes
_deselectTrue if entities should be deselected

Reimplemented in VolumeMeshSelectionPlugin.

Definition at line 830 of file SelectionInterface.hh.

◆ slotFloodFillSelection()

virtual void SelectionInterface::slotFloodFillSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin, and VolumeMeshSelectionPlugin.

Definition at line 806 of file SelectionInterface.hh.

◆ slotGetActiveDataTypes()

virtual void SelectionInterface::slotGetActiveDataTypes ( TypeList &  _types)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_typesReturns the active types

Definition at line 1132 of file SelectionInterface.hh.

◆ slotGetActivePrimitiveType()

virtual void SelectionInterface::slotGetActivePrimitiveType ( PrimitiveType &  _type)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_typeReturns the active primitive types

Definition at line 1138 of file SelectionInterface.hh.

◆ slotKeyShortcutEvent

virtual void SelectionInterface::slotKeyShortcutEvent ( int  _key,
Qt::KeyboardModifiers  _modifiers 
)
inlineprivatevirtualslot

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.

Parameters
_keyThe pressed key
_modifiersIndicates whether mod-keys have been pressed synchronously

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 562 of file SelectionInterface.hh.

◆ slotLassoSelection()

virtual void SelectionInterface::slotLassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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 visible get selected.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin, and SplatCloudObjectSelectionPlugin.

Definition at line 739 of file SelectionInterface.hh.

◆ slotLoadSelection

virtual void SelectionInterface::slotLoadSelection ( const INIFile _file)
inlineprivatevirtualslot

Load selection for specific objects in the scene.

OpenFlipper allows for saving of selections in an INI file (implemented by the different selection plugins by overriding function slotSaveSelection()). So this slot is called each time such INI file is about to be loaded.

Parameters
_fileThe file from which one can read the selection data

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 465 of file SelectionInterface.hh.

◆ slotRegisterKeyShortcut()

virtual void SelectionInterface::slotRegisterKeyShortcut ( int  _key,
Qt::KeyboardModifiers  _modifiers 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_keyKey to use
_modifiersModifier for this key

Definition at line 1126 of file SelectionInterface.hh.

◆ slotRegisterType()

virtual void SelectionInterface::slotRegisterType ( QString  _handleName,
DataType  _type 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin.

Parameters
_handleNameHandle of the selection mode
_typeDatatype to register

Definition at line 1016 of file SelectionInterface.hh.

◆ slotSaveSelection()

virtual void SelectionInterface::slotSaveSelection ( INIFile _file)
inlineprivatevirtual

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 INI file and can be loaded via slotLoadSelection().

Parameters
_fileThe file into which one can store selection data

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 475 of file SelectionInterface.hh.

◆ slotSelectionOperation

virtual void SelectionInterface::slotSelectionOperation ( QString  _operation)
inlineprivatevirtualslot

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.

Parameters
_operationThe identifier of the operation just as registered via addSelectionOperations

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 669 of file SelectionInterface.hh.

◆ slotShowClosestBoundarySelectionMode()

virtual void SelectionInterface::slotShowClosestBoundarySelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1103 of file SelectionInterface.hh.

◆ slotShowFloodFillSelectionMode()

virtual void SelectionInterface::slotShowFloodFillSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1111 of file SelectionInterface.hh.

◆ slotShowLassoSelectionMode()

virtual void SelectionInterface::slotShowLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1071 of file SelectionInterface.hh.

◆ slotShowSphereSelectionMode()

virtual void SelectionInterface::slotShowSphereSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1095 of file SelectionInterface.hh.

◆ slotShowSurfaceLassoSelectionMode()

virtual void SelectionInterface::slotShowSurfaceLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1087 of file SelectionInterface.hh.

◆ slotShowToggleSelectionMode()

virtual void SelectionInterface::slotShowToggleSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1063 of file SelectionInterface.hh.

◆ slotShowVolumeLassoSelectionMode()

virtual void SelectionInterface::slotShowVolumeLassoSelectionMode ( QString  _handleName,
bool  _show,
PrimitiveType  _associatedTypes 
)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_handleNamehandle of the mode
_showHide or show it
_associatedTypesTypes associated with this mode

Definition at line 1079 of file SelectionInterface.hh.

◆ slotSphereSelection()

virtual void SelectionInterface::slotSphereSelection ( QMouseEvent *  _event,
double  _radius,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_radiusThe current radius of the selection sphere
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin, and SplatCloudObjectSelectionPlugin.

Definition at line 780 of file SelectionInterface.hh.

◆ slotSurfaceLassoSelection()

virtual void SelectionInterface::slotSurfaceLassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 766 of file SelectionInterface.hh.

◆ slotTargetObjectsOnly()

virtual void SelectionInterface::slotTargetObjectsOnly ( bool &  _targetsOnly)
inlineprivatevirtual

Do not use. Implemented in SelectionBasePlugin

Parameters
_targetsOnlyuse target objects only

Definition at line 1144 of file SelectionInterface.hh.

◆ slotToggleSelection

virtual void SelectionInterface::slotToggleSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtualslot

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.

Parameters
_eventThe mouse event that occurred
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 726 of file SelectionInterface.hh.

◆ slotVolumeLassoSelection()

virtual void SelectionInterface::slotVolumeLassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlineprivatevirtual

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.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Reimplemented in MeshObjectSelectionPlugin, SplatCloudObjectSelectionPlugin, VolumeMeshSelectionPlugin, BSplineCurveSelectionPlugin, BSplineSurfaceSelectionPlugin, ObjectSelectionPlugin, and PolyLineSelectionPlugin.

Definition at line 752 of file SelectionInterface.hh.

◆ sphereSelection()

virtual void SelectionInterface::sphereSelection ( QMouseEvent *  _event,
double  _radius,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotSphereSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_radiusThe current radius of the selection sphere
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 911 of file SelectionInterface.hh.

◆ surfaceLassoSelection()

virtual void SelectionInterface::surfaceLassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotSurfaceLassoSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 899 of file SelectionInterface.hh.

◆ targetObjectsOnly()

virtual void SelectionInterface::targetObjectsOnly ( bool &  _targetsOnly)
inlinevirtual

Indicates whether selection should be performed on target objects only.

Self-explanatory

Parameters
_targetsOnlyTrue if selection should restrict to target objects

Definition at line 412 of file SelectionInterface.hh.

◆ toggleSelection()

virtual void SelectionInterface::toggleSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotToggleSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 866 of file SelectionInterface.hh.

◆ volumeLassoSelection()

virtual void SelectionInterface::volumeLassoSelection ( QMouseEvent *  _event,
PrimitiveType  _currentType,
bool  _deselect 
)
inlinevirtual

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

This connects to slotVolumeLassoSelection() which has to be implemented by each type selection plugin if this interactive selection mode should be provided.

Parameters
_eventThe mouse event that currently is performed
_currentTypeThe currently active primitive type
_deselectTrue if entities should be deselected

Definition at line 888 of file SelectionInterface.hh.


The documentation for this class was generated from the following file: