101 Q_PLUGIN_METADATA(IID
"org.OpenFlipper.Plugins.Plugin-SelectionBase")
111 QString
name()
override{
return (QString(tr(
"SelectionBase"))); };
112 QString
description( )
override {
return (QString(tr(
"Provides basic selection functions"))); };
117 void updateView()
override;
120 void log(
Logtype _type, QString _message)
override;
121 void log(QString _message)
override;
124 void addToolbar(QToolBar* _toolbar)
override;
127 void toggleSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
128 void lassoSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
129 void volumeLassoSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
130 void surfaceLassoSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
131 void sphereSelection(QMouseEvent* _event,
double _radius, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
132 void closestBoundarySelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
133 void floodFillSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
134 void componentsSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType,
bool _deselect)
override;
135 void customSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier,
bool _deselect)
override;
137 void selectionOperation(QString _operation)
override;
138 void loadSelection(
const INIFile& _file)
override;
139 void saveSelection(
INIFile& _file)
override;
141 void keyShortcutEvent(
int _key, Qt::KeyboardModifiers _modifiers = Qt::NoModifier)
override;
144 void addPickMode(
const std::string& _mode)
override;
145 void setPickModeMouseTracking(
const std::string& _mode,
bool _mouseTracking)
override;
146 void setPickModeCursor(
const std::string& _mode, QCursor _cursor)
override;
147 void setPickModeToolbar (
const std::string& _mode, QToolBar * _toolbar)
override;
150 void registerKey(
int _key, Qt::KeyboardModifiers _modifiers, QString _description,
bool _multiUse =
false)
override;
153 void addToolbox(QString _name, QWidget* _widget, QIcon* _icon)
override;
158 void initializePlugin()
override;
159 void pluginsInitialized()
override;
162 void slotMouseWheelEvent(QWheelEvent* _event,
const std::string& _mode)
override;
163 void slotMouseEvent(QMouseEvent* _event)
override;
166 void slotAddSelectionEnvironment(QString _modeName, QString _description, QString _icon, QString& _handleName)
override;
167 void slotRegisterType(QString _handleName,
DataType _type)
override;
168 void slotAddPrimitiveType(QString _handleName, QString _name, QString _icon, SelectionInterface::PrimitiveType& _typeHandle)
override;
169 void slotAddCustomSelectionMode(QString _handleName, QString _modeName, QString _description, QString _icon,
170 SelectionInterface::PrimitiveType _associatedTypes, QString& _customIdentifier)
override;
171 void slotAddCustomSelectionMode(QString _handleName, QString _modeName, QString _description, QString _icon,
172 SelectionInterface::PrimitiveType _associatedTypes, QString& _customIdentifier,
173 DataType _objectTypeRestriction)
override;
175 void slotAddSelectionOperations(QString _handleName, QStringList _operationsList, QString _category, SelectionInterface::PrimitiveType _type = 0u)
override;
176 void slotAddSelectionParameters(QString _handleName, QWidget* _widget, QString _category, SelectionInterface::PrimitiveType _type = 0u)
override;
178 void slotShowToggleSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
179 void slotShowLassoSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
180 void slotShowVolumeLassoSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
181 void slotShowSurfaceLassoSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
182 void slotShowSphereSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
183 void slotShowClosestBoundarySelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
184 void slotShowFloodFillSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes)
override;
185 void slotShowComponentsSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes) ;
187 void slotGetActiveDataTypes(SelectionInterface::TypeList& _types)
override;
188 void slotGetActivePrimitiveType(SelectionInterface::PrimitiveType& _type)
override;
190 void slotTargetObjectsOnly(
bool& _targetsOnly)
override;
191 void slotRegisterKeyShortcut(
int _key, Qt::KeyboardModifiers _modifiers)
override;
194 void addedEmptyObject (
int _id)
override;
195 void objectDeleted (
int _id)
override;
198 void slotPickModeChanged (
const std::string& _pickmode)
override;
201 void slotKeyEvent(QKeyEvent* _event)
override;
202 void slotKeyReleaseEvent(QKeyEvent* _event)
override;
205 void loadIniFileOptionsLast(
INIFile& _ini)
override;
210 void slotMouseToggleSelection(QMouseEvent* _event);
211 void slotMouseLassoSelection(QMouseEvent* _event);
212 void slotMouseVolumeLassoSelection(QMouseEvent* _event);
213 void slotMouseSurfaceLassoSelection(QMouseEvent* _event);
214 void slotMouseSphereSelection(QMouseEvent* _event);
215 void slotMouseBoundarySelection(QMouseEvent* _event);
216 void slotMouseFloodFillSelection(QMouseEvent* _event);
217 void slotMouseComponentsSelection(QMouseEvent* _event);
218 void slotMouseCustomSelection(QMouseEvent* _event);
220 void slotLoadSelectionButton();
221 void slotSaveSelectionButton();
223 void slotOperationRequested();
224 void slotShowAndHideOperations();
225 void slotShowAndHideParameters();
229 void slotSelectionEnvironmentRequested(
bool _checked);
231 void slotEnterSelectionMode(
bool _checked);
233 void updateActivePrimitiveTypes(
bool _checked);
236 QString version()
override {
return QString(
"1.0"); };
277 std::vector<DataType> types;
279 std::set<HandleAction*> defaultSelectionModes;
281 std::set<HandleAction*> customSelectionModes;
285 QHBoxLayout* primitivesBar;
287 QVBoxLayout* operationsBar;
289 std::map<QString,std::pair<FillingLayout*,QGroupBox*> > categories;
291 QActionGroup* primitiveActions;
293 unsigned int primitiveTypes;
296 std::multimap<PrimitiveType, QPushButton*> operations;
299 std::multimap<PrimitiveType, QWidget*> parameters;
321 void showSelectionMode(
const QString &_mode,
const QString &_icon,
const QString &_desc,
322 const QString &_handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes,
323 QString& _customIdentifier,
bool _custom =
false,
DataType _objectTypeRestriction =
DATA_ALL);
327 SelectionInterface::PrimitiveType& _associatedTypes);
339 void updateTabsOrder();
342 std::map<QString,SelectionEnvironment> selectionEnvironments_;
347 std::map<PrimitiveType,QAction*> primitiveTypeButtons_;
356 QActionGroup* primitivesBarGroup_;
357 QToolBar* pickModeToolBar_;
359 QActionGroup* selectionModesGroup_;
371 std::set<std::pair<int,Qt::KeyboardModifiers> > registeredKeys_;
376 QString currentPickMode_;
379 QString lastPickMode_;
382 QString currentSelectionMode_;
385 SelectionInterface::PrimitiveType currentPrimitiveType_;
388 unsigned int nextFreePrimitiveType_;
402 double sphere_radius_;
408 bool lassoSelection_;
411 std::vector<ACG::Vec3d> linePoints_;