Developer Documentation

VolumeMeshSelectionPlugin.hh
1 /*===========================================================================*\
2 * *
3 * OpenFlipper *
4 * Copyright (c) 2001-2015, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openflipper.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenFlipper. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 \*===========================================================================*/
41
42 #ifndef VOLUMEMESHSELECTIONPLUGIN_HH
43 #define VOLUMEMESHSELECTIONPLUGIN_HH
44
45 #include <QObject>
46
47 #include <OpenFlipper/BasePlugin/BaseInterface.hh>
48 #include <OpenFlipper/BasePlugin/KeyInterface.hh>
49 #include <OpenFlipper/BasePlugin/LoggingInterface.hh>
50 #include <OpenFlipper/BasePlugin/ToolboxInterface.hh>
51 #include <OpenFlipper/BasePlugin/ToolbarInterface.hh>
52 #include <OpenFlipper/BasePlugin/LoadSaveInterface.hh>
53 #include <OpenFlipper/BasePlugin/BackupInterface.hh>
54 #include <OpenFlipper/BasePlugin/INIInterface.hh>
55 #include <OpenFlipper/BasePlugin/ScriptInterface.hh>
56 #include <OpenFlipper/BasePlugin/SelectionInterface.hh>
57 #include <OpenFlipper/common/Types.hh>
58 #include <OpenFlipper/BasePlugin/PluginFunctions.hh>
59 #include <OpenFlipper/INIFile/INIFile.hh>
60
61 #include <ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh>
62 #include <ObjectTypes/HexahedralMesh/HexahedralMesh.hh>
63 #ifdef ENABLE_TETRAHEDRALMESH_SUPPORT
64 #include <ObjectTypes/TetrahedralMesh/TetrahedralMesh.hh>
65 #endif
66
67 class ParameterWidget;
68
69 class VolumeMeshSelectionPlugin : public QObject, BaseInterface, KeyInterface,
70 INIInterface, BackupInterface, LoggingInterface, ScriptInterface, SelectionInterface
71 {
72 Q_OBJECT
73 Q_INTERFACES(BaseInterface)
74 Q_INTERFACES(KeyInterface)
75 Q_INTERFACES(INIInterface)
76 Q_INTERFACES(BackupInterface)
77 Q_INTERFACES(LoggingInterface)
78 Q_INTERFACES(ScriptInterface)
79 Q_INTERFACES(SelectionInterface)
80
81 Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-SelectionVolumeMesh")
82
83 public:
84
86 VolumeMeshSelectionPlugin();
87
89 ~VolumeMeshSelectionPlugin();
90
91 friend class SelectVolumeAction;
92
94 void set_max_angle(const double _a);
96 double get_max_angle();
97
98 signals:
99
100 // BaseInterface
101 void updateView();
102 void updatedObject(int, const UpdateType&);
103 void nodeVisibilityChanged(int _identifier);
104 void setSlotDescription(QString _slotName, QString _slotDescription,
105 QStringList _parameters, QStringList _descriptions);
106
107 // LoggingInterface
108 void log(Logtype _type, QString _message);
109 void log(QString _message);
110
111 // ScriptInterface
112 void scriptInfo(QString _functionName);
113
114 // SelectionInterface
115 void addSelectionEnvironment(QString _modeName, QString _description, QString _icon, QString& _handleName);
116 void registerType(QString _handleName, DataType _type);
117 void addPrimitiveType(QString _handleName, QString _name, QString _icon, SelectionInterface::PrimitiveType& _typeHandle);
118 void addSelectionOperations(QString _handleName, QStringList _operationsList, QString _category, SelectionInterface::PrimitiveType _type = 0u);
119 void addSelectionParameters(QString _handleName, QWidget* _widget, QString _category, SelectionInterface::PrimitiveType _type = 0u);
120
121 void showToggleSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
122
123 void showVolumeLassoSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
124 void showFloodFillSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
125 void addCustomSelectionMode(QString _handleName, QString _modeName, QString _description, QString _icon,
126 SelectionInterface::PrimitiveType _associatedTypes, QString& _customIdentifier);
127
128 void getActiveDataTypes(SelectionInterface::TypeList& _types);
129 void getActivePrimitiveType(SelectionInterface::PrimitiveType& _type);
130 void targetObjectsOnly(bool& _targetsOnly);
131
132 void registerKeyShortcut(int _key, Qt::KeyboardModifiers _modifiers = Qt::NoModifier);
133
134 private slots:
135
136 // INIInterface
137 void loadIniFile(INIFile& _ini, int _id);
138 void saveIniFile(INIFile& _ini, int _id);
139
140 // BaseInterface
141 void initializePlugin();
142 void pluginsInitialized();
143 void noguiSupported() {};
144
145 // SelectionInterface
146 void slotSelectionOperation(QString _operation);
147 void slotToggleSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, bool _deselect);
148
149 void slotVolumeLassoSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, bool _deselect);
150 void slotFloodFillSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, bool _deselect);
151 void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect);
152
153 void slotLoadSelection(const INIFile& _file);
154 void slotSaveSelection(INIFile& _file);
155
156 void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers);
157
158 public slots:
159
160 // SelectionInterface
161 void loadSelection(int _objId, const QString& _filename);
162
163 public:
164
165 // BaseInterface
166 QString name() {
167 return (QString(tr("VolumeMesh Selection")));
168 };
169
170 QString description() {
171 return (QString(tr("Allows to select VolumeMeshes")));
172 };
173
174 //===========================================================================
177 //===========================================================================
178 private:
179
181 void updateSlotDescriptions();
182
185 public slots:
186
187 QString version() {
188 return QString("1.0");
189 };
190
191 //===========================================================================
194 //===========================================================================
195
197 bool vertexTypeActive();
198
200 bool edgeTypeActive();
201
203 bool faceTypeActive();
204
206 bool cellTypeActive();
207
208 //===========================================================================
209
211 void selectAllVertices(int _objectId);
212
214 void deselectAllVertices(int _objectId);
215
217 void invertVertexSelection(int _objectId);
218
220 void selectVertices(int _objectId, const IdList& _ids, bool _deselect = false);
221
223 IdList getVertexSelection(int _objectId);
224
226 void deleteSelectedVertices(int _objectId, bool _preserveManifoldness = true);
227
228 //===========================================================================
229
231 void selectAllEdges(int _objectId);
232
234 void deselectAllEdges(int _objectId);
235
237 void invertEdgeSelection(int _objectId);
238
240 void selectEdges(int _objectId, const IdList& _ids, bool _deselect = false);
241
243 IdList getEdgeSelection(int _objectId);
244
246 void deleteSelectedEdges(int _objectId, bool _preserveManifoldness = true);
247
248 //===========================================================================
249
251 void selectAllHalfEdges(int _objectId);
252
254 void deselectAllHalfEdges(int _objectId);
255
257 void invertHalfEdgeSelection(int _objectId);
258
260 void selectHalfEdges(int _objectId, const IdList& _ids, bool _deselect = false);
261
263 IdList getHalfEdgeSelection(int _objectId);
264
265 //===========================================================================
266
268 void selectAllFaces(int _objectId);
269
271 void deselectAllFaces(int _objectId);
272
274 void invertFaceSelection(int _objectId);
275
277 void selectFaces(int _objectId, const IdList& _ids, bool _deselect = false);
278
280 IdList getFaceSelection(int _objectId);
281
283 void deleteSelectedFaces(int _objectId, bool _preserveManifoldness = true);
284
285 //===========================================================================
286
288 void selectAllHalfFaces(int _objectId);
289
291 void deselectAllHalfFaces(int _objectId);
292
294 void invertHalfFaceSelection(int _objectId);
295
297 void selectHalfFaces(int _objectId, const IdList& _ids, bool _deselect = false);
298
300 IdList getHalfFaceSelection(int _objectId);
301
302 //===========================================================================
303
305 void selectAllCells(int _objectId);
306
308 void deselectAllCells(int _objectId);
309
311 void invertCellSelection(int _objectId);
312
314 void selectCells(int _objectId, const IdList& _ids, bool _deselect = false);
315
317 IdList getCellSelection(int _objectId);
318
320 void deleteSelectedCells(int _objectId, bool _preserveManifoldness = true);
321
324 //===========================================================================
327 //===========================================================================
328
329 private:
331 template<class MeshT>
332 bool volumeSelection(MeshT* _mesh, ACG::GLState& _state, QRegion *_region,
333 PrimitiveType _primitiveTypes, bool _deselection);
334
336 template<class MeshT>
337 void floodFillSelection(MeshT* _mesh, uint _fh, double _maxAngle,
338 PrimitiveType _primitiveTypes, bool _deselection);
339
340 // Get orthogonal orientation of neighboring cell
341 unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle& _ch1,
342 const OpenVolumeMesh::CellHandle& _ch2, unsigned char _firstOrthDirection, const HexahedralMesh* _mesh) const;
343
344 // Get face shared by two adjacent cells
345 typedef std::pair<OpenVolumeMesh::HalfFaceHandle,OpenVolumeMesh::HalfFaceHandle> HFPair;
346 HFPair getCommonFace(const OpenVolumeMesh::CellHandle& _ch1,
347 const OpenVolumeMesh::CellHandle& _ch2, const HexahedralMesh* _mesh) const;
348
349
350 OpenVolumeMesh::StatusAttrib* getStatus(int _objectId);
351 OpenVolumeMesh::StatusAttrib* getStatus(BaseObjectData* object);
352
354 QString environmentHandle_;
355
356 QString columnSelectionHandle_;
357 QString sheetSelectionHandle_;
358
360 PrimitiveType vertexType_;
361 PrimitiveType edgeType_;
362 PrimitiveType faceType_;
363 PrimitiveType cellType_;
364
365 PrimitiveType allSupportedTypes_;
366 PrimitiveType floodFillSupportedTypes_;
367
368 ParameterWidget* parameterWidget_;
369
370 double max_angle_;
371
373 QVector<QPoint> volumeLassoPoints_;
374
375 // Store last picked cell for sheet selection
376 OpenVolumeMesh::CellHandle lastPickedCell_;
377 unsigned char lastPickedOrientation_;
378 std::map<OpenVolumeMesh::CellHandle, unsigned char> orientationMap_;
379
382 };
383
385 class SelectVolumeAction
386 {
387 public:
388 SelectVolumeAction(QRegion&_region, VolumeMeshSelectionPlugin* _plugin,
389 unsigned int _type, bool _deselection, ACG::GLState& _state)
390 : state_(_state)
391 , region_(_region)
392 , plugin_(_plugin)
393 , type_(_type)
394 , deselection_(_deselection)
395 {
396 }
397
398 void enter(BaseNode* /*_node*/) {}
399 void leave(BaseNode* /*_node*/) {}
400
401 bool operator()(BaseNode* _node);
402
403 private:
404 ACG::GLState& state_;
405 QRegion& region_;
406 VolumeMeshSelectionPlugin* plugin_;
407 unsigned int type_;
408 bool deselection_;
409 };
410 //=============================================================================
411 #if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHSELECTIONPLUGINT_CC)
412 #define VOLUMEMESHSELECTIONPLUGINT_TEMPLATES
413 #include "VolumeMeshSelectionPluginT_impl.hh"
414 #endif
415
416 //=============================================================================
417 #endif // VOLUMEMESHSELECTIONPLUGIN_HH defined
418 //=============================================================================
SelectionInterface.hh
ParameterWidget
Definition: ParameterWidget.hh:44
ScriptInterface.hh
VolumeMeshSelectionPlugin::lastPickedCell_
OpenVolumeMesh::CellHandle lastPickedCell_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:376
VolumeMeshSelectionPlugin::slotSaveSelection
void slotSaveSelection(INIFile &_file)
Save selection for all objects in the scene.
Definition: VolumeMeshSelectionPlugin.cc:998
ToolboxInterface.hh
VolumeMeshSelectionPlugin::selectFaces
void selectFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:555
VolumeMeshSelectionPlugin::selectAllCells
void selectAllCells(int _objectId)
Select all cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:768
VolumeMeshSelectionPlugin::~VolumeMeshSelectionPlugin
~VolumeMeshSelectionPlugin()
Default destructor.
Definition: VolumeMeshSelectionPlugin.cc:88
VolumeMeshSelectionPlugin::getOrthogonalOrientationOfNeighborCell
unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, unsigned char _firstOrthDirection, const HexahedralMesh *_mesh) const
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.cc:760
VolumeMeshSelectionPlugin::selectAllHalfEdges
void selectAllHalfEdges(int _objectId)
Select all half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:357
VolumeMeshSelectionPlugin::deselectAllEdges
void deselectAllEdges(int _objectId)
Deselect all edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:226
VolumeMeshSelectionPlugin::selectHalfEdges
void selectHalfEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:426
VolumeMeshSelectionPlugin::selectCells
void selectCells(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:837
ACG::GLState
Definition: GLState.hh:213
VolumeMeshSelectionPlugin::environmentHandle_
QString environmentHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:354
LoadSaveInterface.hh
VolumeMeshSelectionPlugin::deleteSelectedEdges
void deleteSelectedEdges(int _objectId, bool _preserveManifoldness=true)
Delete selected edges from mesh.
Definition: VolumeMeshSelectionFunctions.cc:329
OpenVolumeMesh::StatusAttrib
Definition: StatusAttrib.hh:57
VolumeMeshSelectionPlugin::selectAllVertices
void selectAllVertices(int _objectId)
Select all vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:49
OpenVolumeMesh::HandleT< Entity::Cell >
VolumeMeshSelectionPlugin::selectEdges
void selectEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:272
VolumeMeshSelectionPlugin::slotVolumeLassoSelection
void slotVolumeLassoSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a volume lasso selection.
Definition: VolumeMeshSelectionPlugin.cc:462
VolumeMeshSelectionPlugin::slotFloodFillSelection
void slotFloodFillSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a flood fill selection.
Definition: VolumeMeshSelectionPlugin.cc:491
VolumeMeshSelectionPlugin::slotLoadSelection
void slotLoadSelection(const INIFile &_file)
Load selection for specific objects in the scene.
Definition: VolumeMeshSelectionPlugin.cc:949
VolumeMeshSelectionPlugin::getStatus
OpenVolumeMesh::StatusAttrib * getStatus(int _objectId)
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.cc:811
VolumeMeshSelectionPlugin::max_angle_
double max_angle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:370
Logtype
Logtype
Log types for Message Window.
Definition: LoggingInterface.hh:92
VolumeMeshSelectionPlugin::edgeTypeActive
bool edgeTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:213
TetrahedralMesh.hh
VolumeMeshSelectionPlugin::allSupportedTypes_
PrimitiveType allSupportedTypes_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:365
VolumeMeshSelectionPlugin::getCellSelection
IdList getCellSelection(int _objectId)
Get current cell selection.
Definition: VolumeMeshSelectionFunctions.cc:869
DataType
Predefined datatypes.
Definition: DataTypes.hh:83
PluginFunctions.hh
LoggingInterface
Interface for all Plugins which do logging to the logging window of the framework.
Definition: LoggingInterface.hh:112
VolumeMeshSelectionPlugin::faceTypeActive
bool faceTypeActive()
Is face type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:219
VolumeMeshSelectionPlugin::deleteSelectedFaces
void deleteSelectedFaces(int _objectId, bool _preserveManifoldness=true)
Delete selected faces from mesh.
Definition: VolumeMeshSelectionFunctions.cc:612
VolumeMeshSelectionPlugin::getHalfFaceSelection
IdList getHalfFaceSelection(int _objectId)
Get current half-face selection.
Definition: VolumeMeshSelectionFunctions.cc:741
VolumeMeshSelectionPlugin::deselectAllVertices
void deselectAllVertices(int _objectId)
Deselect all vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:72
VolumeMeshSelectionPlugin::getCommonFace
HFPair getCommonFace(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, const HexahedralMesh *_mesh) const
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.cc:791
LoggingInterface.hh
VolumeMeshSelectionPlugin::name
QString name()
Return a name for the plugin.
Definition: VolumeMeshSelectionPlugin.hh:166
VolumeMeshSelectionPlugin::selectHalfFaces
void selectHalfFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:709
VolumeMeshSelectionPlugin::getEdgeSelection
IdList getEdgeSelection(int _objectId)
Get current edge selection.
Definition: VolumeMeshSelectionFunctions.cc:304
IdList
std::vector< int > IdList
Standard Type for id Lists used for scripting.
Definition: DataTypes.hh:179
VolumeMeshSelectionPlugin::volumeSelection
bool volumeSelection(MeshT *_mesh, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection)
Surface volume selection tool.
Definition: VolumeMeshSelectionPluginT_impl.hh:60
VolumeMeshSelectionPlugin::deleteSelectedVertices
void deleteSelectedVertices(int _objectId, bool _preserveManifoldness=true)
Delete selected vertices from mesh.
Definition: VolumeMeshSelectionFunctions.cc:175
VolumeMeshSelectionPlugin::floodFillSelection
void floodFillSelection(MeshT *_mesh, uint _fh, double _maxAngle, PrimitiveType _primitiveTypes, bool _deselection)
Select all entities that are connected (and do not exceed the maximum dihedral angle) ...
Definition: VolumeMeshSelectionPluginT_impl.hh:154
VolumeMeshSelectionPlugin::vertexTypeActive
bool vertexTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:207
VolumeMeshSelectionPlugin::invertHalfEdgeSelection
void invertHalfEdgeSelection(int _objectId)
Invert half-edge selection.
Definition: VolumeMeshSelectionFunctions.cc:403
ToolbarInterface.hh
VolumeMeshSelectionPlugin::selectAllFaces
void selectAllFaces(int _objectId)
Select all faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:486
VolumeMeshSelectionPlugin::slotKeyShortcutEvent
void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers)
One of the previously registered keys has been pressed.
Definition: VolumeMeshSelectionPlugin.cc:1026
HexahedralMesh.hh
VolumeMeshSelectionPlugin::selectAllHalfFaces
void selectAllHalfFaces(int _objectId)
Select all half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:640
VolumeMeshSelectionPlugin::volumeLassoPoints_
QVector< QPoint > volumeLassoPoints_
Keep volume lasso points.
Definition: VolumeMeshSelectionPlugin.hh:373
PolyhedralMesh.hh
VolumeMeshSelectionPlugin::cellTypeActive
bool cellTypeActive()
Is cell type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:225
VolumeMeshSelectionPlugin::faceType_
PrimitiveType faceType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:362
VolumeMeshSelectionPlugin::deselectAllFaces
void deselectAllFaces(int _objectId)
Deselect all faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:509
VolumeMeshSelectionPlugin::cellType_
PrimitiveType cellType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:363
VolumeMeshSelectionPlugin::edgeType_
PrimitiveType edgeType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:361
VolumeMeshSelectionPlugin::columnSelectionHandle_
QString columnSelectionHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:356
VolumeMeshSelectionPlugin::vertexType_
PrimitiveType vertexType_
Primitive type handles:
Definition: VolumeMeshSelectionPlugin.hh:360
ACG::SceneGraph::BaseNode
Definition: BaseNode.hh:104
SelectionInterface
Interface for all plugins which want to use selection functions.
Definition: SelectionInterface.hh:67
VolumeMeshSelectionPlugin::deselectAllCells
void deselectAllCells(int _objectId)
Deselect all cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:791
VolumeMeshSelectionPlugin::deleteSelectedCells
void deleteSelectedCells(int _objectId, bool _preserveManifoldness=true)
Delete selected cells from mesh.
Definition: VolumeMeshSelectionFunctions.cc:894
BaseObjectData
Definition: BaseObjectData.hh:102
UpdateType
Update type class.
Definition: UpdateType.hh:60
VolumeMeshSelectionPlugin::invertEdgeSelection
void invertEdgeSelection(int _objectId)
Invert edge selection.
Definition: VolumeMeshSelectionFunctions.cc:249
VolumeMeshSelectionPlugin::invertCellSelection
void invertCellSelection(int _objectId)
Invert cell selection.
Definition: VolumeMeshSelectionFunctions.cc:814
VolumeMeshSelectionPlugin::getFaceSelection
IdList getFaceSelection(int _objectId)
Get current face selection.
Definition: VolumeMeshSelectionFunctions.cc:587
VolumeMeshSelectionPlugin::slotToggleSelection
void slotToggleSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a toggle selection.
Definition: VolumeMeshSelectionPlugin.cc:353
VolumeMeshSelectionPlugin::slotSelectionOperation
void slotSelectionOperation(QString _operation)
A specific operation is requested.
Definition: VolumeMeshSelectionPlugin.cc:233
VolumeMeshSelectionPlugin::lastPickedOrientation_
unsigned char lastPickedOrientation_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:377
KeyInterface
Keyboard Event Interface.
Definition: KeyInterface.hh:59
INIInterface
Interface class for Plugins which have to store information in ini files.
Definition: INIInterface.hh:60
VolumeMeshSelectionPlugin::deselectAllHalfFaces
void deselectAllHalfFaces(int _objectId)
Deselect all half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:663
VolumeMeshSelectionPlugin
Definition: VolumeMeshSelectionPlugin.hh:69
VolumeMeshSelectionPlugin::selectAllEdges
void selectAllEdges(int _objectId)
Select all edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:203
VolumeMeshSelectionPlugin::orientationMap_
std::map< OpenVolumeMesh::CellHandle, unsigned char > orientationMap_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:378
INIFile
Class for the handling of simple configuration files.
Definition: INIFile.hh:99
OpenVolumeMesh::GeometryKernel
Definition: GeometryKernel.hh:47
VolumeMeshSelectionPlugin::parameterWidget_
ParameterWidget * parameterWidget_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:368
VolumeMeshSelectionPlugin::getVertexSelection
IdList getVertexSelection(int _objectId)
Get current vertex selection.
Definition: VolumeMeshSelectionFunctions.cc:150
VolumeMeshSelectionPlugin::deselectAllHalfEdges
void deselectAllHalfEdges(int _objectId)
Deselect all half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:380
VolumeMeshSelectionPlugin::selectVertices
void selectVertices(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:118
VolumeMeshSelectionPlugin::HFPair
std::pair< OpenVolumeMesh::HalfFaceHandle, OpenVolumeMesh::HalfFaceHandle > HFPair
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:345
ScriptInterface
Interface for all Plugins which provide scriptable Functions.
Definition: ScriptInterface.hh:58
VolumeMeshSelectionPlugin::set_max_angle
void set_max_angle(const double _a)
set max angle for flood fill selection
Definition: VolumeMeshSelectionPlugin.cc:853
VolumeMeshSelectionPlugin::description
QString description()
Return a description of what the plugin is doing.
Definition: VolumeMeshSelectionPlugin.hh:170
Types.hh
VolumeMeshSelectionPlugin::invertFaceSelection
void invertFaceSelection(int _objectId)
Invert face selection.
Definition: VolumeMeshSelectionFunctions.cc:532
VolumeMeshSelectionPlugin::slotCustomSelection
void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
Called whenever the user performs a custom selection.
Definition: VolumeMeshSelectionPlugin.cc:606
VolumeMeshSelectionPlugin::get_max_angle
double get_max_angle()
get max angle for flood fill selection
Definition: VolumeMeshSelectionPlugin.cc:858
VolumeMeshSelectionPlugin::VolumeMeshSelectionPlugin
VolumeMeshSelectionPlugin()
Default constructor.
Definition: VolumeMeshSelectionPlugin.cc:81
VolumeMeshSelectionPlugin::invertVertexSelection
void invertVertexSelection(int _objectId)
Invert vertex selection.
Definition: VolumeMeshSelectionFunctions.cc:95
VolumeMeshSelectionPlugin::sheetSelectionHandle_
QString sheetSelectionHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:357
VolumeMeshSelectionPlugin::updateSlotDescriptions
void updateSlotDescriptions()
Set slot descriptions for scripting functions.
Definition: VolumeMeshSelectionPlugin.cc:198
VolumeMeshSelectionPlugin::getHalfEdgeSelection
IdList getHalfEdgeSelection(int _objectId)
Get current half-edge selection.
Definition: VolumeMeshSelectionFunctions.cc:458
VolumeMeshSelectionPlugin::floodFillSupportedTypes_
PrimitiveType floodFillSupportedTypes_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:366
BaseInterface
Interface class from which all plugins have to be created.
Definition: BaseInterface.hh:65
BaseInterface.hh
BackupInterface
Interface class for backup handling.
Definition: BackupInterface.hh:59
BackupInterface.hh
SelectVolumeAction
Traverse the scenegraph and call the selection function for all mesh nodes.
Definition: MeshObjectSelectionPlugin.hh:634
VolumeMeshSelectionPlugin::invertHalfFaceSelection
void invertHalfFaceSelection(int _objectId)
Invert half-face selection.
Definition: VolumeMeshSelectionFunctions.cc:686
KeyInterface.hh