Developer Documentation

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 /*===========================================================================*\
43 * *
44 * $Revision: 11942 $ *
45 * $Author: kremer $ *
46 * $Date: 2011-07-06 15:10:17 +0200 (Wed, 06 Jul 2011) $ *
47 * *
48 \*===========================================================================*/
49
50 #ifndef VOLUMEMESHSELECTIONPLUGIN_HH
51 #define VOLUMEMESHSELECTIONPLUGIN_HH
52
53 #include <QObject>
54
55 #include <OpenFlipper/BasePlugin/BaseInterface.hh>
56 #include <OpenFlipper/BasePlugin/KeyInterface.hh>
57 #include <OpenFlipper/BasePlugin/LoggingInterface.hh>
58 #include <OpenFlipper/BasePlugin/ToolboxInterface.hh>
59 #include <OpenFlipper/BasePlugin/ToolbarInterface.hh>
60 #include <OpenFlipper/BasePlugin/LoadSaveInterface.hh>
61 #include <OpenFlipper/BasePlugin/BackupInterface.hh>
62 #include <OpenFlipper/BasePlugin/INIInterface.hh>
63 #include <OpenFlipper/BasePlugin/ScriptInterface.hh>
64 #include <OpenFlipper/BasePlugin/SelectionInterface.hh>
65 #include <OpenFlipper/common/Types.hh>
66 #include <OpenFlipper/BasePlugin/PluginFunctions.hh>
67 #include <OpenFlipper/INIFile/INIFile.hh>
68
69 #include <ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh>
70 #include <ObjectTypes/HexahedralMesh/HexahedralMesh.hh>
71
72 class VolumeMeshSelectionPlugin : public QObject, BaseInterface, KeyInterface,
73 INIInterface, BackupInterface, LoggingInterface, ScriptInterface, SelectionInterface
74 {
75 Q_OBJECT
76 Q_INTERFACES(BaseInterface)
77 Q_INTERFACES(KeyInterface)
78 Q_INTERFACES(INIInterface)
79 Q_INTERFACES(BackupInterface)
80 Q_INTERFACES(LoggingInterface)
81 Q_INTERFACES(ScriptInterface)
82 Q_INTERFACES(SelectionInterface)
83
84 #if QT_VERSION >= 0x050000
85 Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-SelectionVolumeMesh")
86 #endif
87
88 public:
89
91 VolumeMeshSelectionPlugin();
92
94 ~VolumeMeshSelectionPlugin();
95
96 friend class SelectVolumeAction;
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
120 void showToggleSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
121
122 void showVolumeLassoSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
123 void showFloodFillSelectionMode(QString _handleName, bool _show, SelectionInterface::PrimitiveType _associatedTypes);
124 void addCustomSelectionMode(QString _handleName, QString _modeName, QString _description, QString _icon,
125 SelectionInterface::PrimitiveType _associatedTypes, QString& _customIdentifier);
126
127 void getActiveDataTypes(SelectionInterface::TypeList& _types);
128 void getActivePrimitiveType(SelectionInterface::PrimitiveType& _type);
129 void targetObjectsOnly(bool& _targetsOnly);
130
131 void registerKeyShortcut(int _key, Qt::KeyboardModifiers _modifiers = Qt::NoModifier);
132
133 private slots:
134
135 // INIInterface
136 void loadIniFile(INIFile& _ini, int _id);
137 void saveIniFile(INIFile& _ini, int _id);
138
139 // BaseInterface
140 void initializePlugin();
141 void pluginsInitialized();
142 void noguiSupported() {};
143
144 // SelectionInterface
145 void slotSelectionOperation(QString _operation);
146 void slotToggleSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, bool _deselect);
147
148 void slotVolumeLassoSelection(QMouseEvent* _event, SelectionInterface::PrimitiveType _currentType, bool _deselect);
149 void slotFloodFillSelection(QMouseEvent* _event, double _maxAngle, SelectionInterface::PrimitiveType _currentType, bool _deselect);
150 void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect);
151
152 void slotLoadSelection(const INIFile& _file);
153 void slotSaveSelection(INIFile& _file);
154
155 void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers);
156
157 public slots:
158
159 // SelectionInterface
160 void loadSelection(int _objId, const QString& _filename);
161
162 public:
163
164 // BaseInterface
165 QString name() {
166 return (QString(tr("VolumeMesh Selection")));
167 };
168
169 QString description() {
170 return (QString(tr("Allows to select VolumeMeshes")));
171 };
172
173 //===========================================================================
176 //===========================================================================
177 private:
178
180 void updateSlotDescriptions();
181
184 public slots:
185
186 QString version() {
187 return QString("1.0");
188 };
189
190 //===========================================================================
193 //===========================================================================
194
196 bool vertexTypeActive();
197
199 bool edgeTypeActive();
200
202 bool faceTypeActive();
203
205 bool cellTypeActive();
206
207 //===========================================================================
208
210 void selectAllVertices(int _objectId);
211
213 void deselectAllVertices(int _objectId);
214
216 void invertVertexSelection(int _objectId);
217
219 void selectVertices(int _objectId, const IdList& _ids, bool _deselect = false);
220
222 IdList getVertexSelection(int _objectId);
223
225 void deleteSelectedVertices(int _objectId, bool _preserveManifoldness = true);
226
227 //===========================================================================
228
230 void selectAllEdges(int _objectId);
231
233 void deselectAllEdges(int _objectId);
234
236 void invertEdgeSelection(int _objectId);
237
239 void selectEdges(int _objectId, const IdList& _ids, bool _deselect = false);
240
242 IdList getEdgeSelection(int _objectId);
243
245 void deleteSelectedEdges(int _objectId, bool _preserveManifoldness = true);
246
247 //===========================================================================
248
250 void selectAllHalfEdges(int _objectId);
251
253 void deselectAllHalfEdges(int _objectId);
254
256 void invertHalfEdgeSelection(int _objectId);
257
259 void selectHalfEdges(int _objectId, const IdList& _ids, bool _deselect = false);
260
262 IdList getHalfEdgeSelection(int _objectId);
263
264 //===========================================================================
265
267 void selectAllFaces(int _objectId);
268
270 void deselectAllFaces(int _objectId);
271
273 void invertFaceSelection(int _objectId);
274
276 void selectFaces(int _objectId, const IdList& _ids, bool _deselect = false);
277
279 IdList getFaceSelection(int _objectId);
280
282 void deleteSelectedFaces(int _objectId, bool _preserveManifoldness = true);
283
284 //===========================================================================
285
287 void selectAllHalfFaces(int _objectId);
288
290 void deselectAllHalfFaces(int _objectId);
291
293 void invertHalfFaceSelection(int _objectId);
294
296 void selectHalfFaces(int _objectId, const IdList& _ids, bool _deselect = false);
297
299 IdList getHalfFaceSelection(int _objectId);
300
301 //===========================================================================
302
304 void selectAllCells(int _objectId);
305
307 void deselectAllCells(int _objectId);
308
310 void invertCellSelection(int _objectId);
311
313 void selectCells(int _objectId, const IdList& _ids, bool _deselect = false);
314
316 IdList getCellSelection(int _objectId);
317
319 void deleteSelectedCells(int _objectId, bool _preserveManifoldness = true);
320
323 //===========================================================================
326 //===========================================================================
327
328 private:
330 template<class MeshT>
331 bool volumeSelection(MeshT* _mesh, ACG::GLState& _state, QRegion *_region,
332 PrimitiveType _primitiveTypes, bool _deselection);
333
335 template<class MeshT>
336 void floodFillSelection(MeshT* _mesh, uint _fh, double _maxAngle,
337 PrimitiveType _primitiveTypes, bool _deselection);
338
339 // Get orthogonal orientation of neighboring cell
340 unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle& _ch1,
341 const OpenVolumeMesh::CellHandle& _ch2, unsigned char _firstOrthDirection, const HexahedralMesh* _mesh) const;
342
343 // Get face shared by two adjacent cells
344 typedef std::pair<OpenVolumeMesh::HalfFaceHandle,OpenVolumeMesh::HalfFaceHandle> HFPair;
345 HFPair getCommonFace(const OpenVolumeMesh::CellHandle& _ch1,
346 const OpenVolumeMesh::CellHandle& _ch2, const HexahedralMesh* _mesh) const;
347
349 QString environmentHandle_;
350
351 QString columnSelectionHandle_;
352 QString sheetSelectionHandle_;
353
355 PrimitiveType vertexType_;
356 PrimitiveType edgeType_;
357 PrimitiveType faceType_;
358 PrimitiveType cellType_;
359
360 PrimitiveType allSupportedTypes_;
361 PrimitiveType floodFillSupportedTypes_;
362
364 QVector<QPoint> volumeLassoPoints_;
365
366 // Store last picked cell for sheet selection
367 OpenVolumeMesh::CellHandle lastPickedCell_;
368 unsigned char lastPickedOrientation_;
369 std::map<OpenVolumeMesh::CellHandle, unsigned char> orientationMap_;
370
373 };
374
376 class SelectVolumeAction
377 {
378 public:
379 SelectVolumeAction(QRegion&_region, VolumeMeshSelectionPlugin* _plugin,
380 unsigned int _type, bool _deselection, ACG::GLState& _state)
381 : state_(_state)
382 , region_(_region)
383 , plugin_(_plugin)
384 , type_(_type)
385 , deselection_(_deselection)
386 {
387 }
388
389 void enter(BaseNode* /*_node*/) {}
390 void leave(BaseNode* /*_node*/) {}
391
392 bool operator()(BaseNode* _node);
393
394 private:
395 ACG::GLState& state_;
396 QRegion& region_;
397 VolumeMeshSelectionPlugin* plugin_;
398 unsigned int type_;
399 bool deselection_;
400 };
401 //=============================================================================
402 #if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHSELECTIONPLUGINT_CC)
403 #define VOLUMEMESHSELECTIONPLUGINT_TEMPLATES
404 #include "VolumeMeshSelectionPluginT.cc"
405 #endif
406
407 //=============================================================================
408 #endif // VOLUMEMESHSELECTIONPLUGIN_HH defined
409 //=============================================================================
VolumeMeshSelectionPlugin::columnSelectionHandle_
QString columnSelectionHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:351
VolumeMeshSelectionPlugin::slotCustomSelection
void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
Called whenever the user performs a custom selection.
Definition: VolumeMeshSelectionPlugin.cc:592
VolumeMeshSelectionPlugin::allSupportedTypes_
PrimitiveType allSupportedTypes_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:360
BaseInterface
Interface class from which all plugins have to be created.
Definition: BaseInterface.hh:76
VolumeMeshSelectionPlugin::getCellSelection
IdList getCellSelection(int _objectId)
Get current cell selection.
Definition: VolumeMeshSelectionFunctions.cc:1005
VolumeMeshSelectionPlugin::~VolumeMeshSelectionPlugin
~VolumeMeshSelectionPlugin()
Default destructor.
Definition: VolumeMeshSelectionPlugin.cc:92
VolumeMeshSelectionPlugin::sheetSelectionHandle_
QString sheetSelectionHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:352
VolumeMeshSelectionPlugin::invertHalfFaceSelection
void invertHalfFaceSelection(int _objectId)
Invert half-face selection.
Definition: VolumeMeshSelectionFunctions.cc:794
OpenVolumeMesh::CellHandle
Definition: OpenVolumeMeshHandle.hh:101
VolumeMeshSelectionPlugin::cellTypeActive
bool cellTypeActive()
Is cell type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:220
ACG::SceneGraph::BaseNode
Definition: BaseNode.hh:135
KeyInterface
Keyboard Event Interface.
Definition: KeyInterface.hh:76
VolumeMeshSelectionPlugin::edgeType_
PrimitiveType edgeType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:356
INIInterface
Interface class for Plugins which have to store information in ini files.
Definition: INIInterface.hh:81
VolumeMeshSelectionPlugin::cellType_
PrimitiveType cellType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:358
Logtype
Logtype
Log types for Message Window.
Definition: LoggingInterface.hh:103
PolyhedralMesh.hh
VolumeMeshSelectionPlugin::slotToggleSelection
void slotToggleSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a toggle selection.
Definition: VolumeMeshSelectionPlugin.cc:343
ToolbarInterface.hh
BackupInterface.hh
VolumeMeshSelectionPlugin::selectAllHalfFaces
void selectAllHalfFaces(int _objectId)
Select all half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:740
VolumeMeshSelectionPlugin::VolumeMeshSelectionPlugin
VolumeMeshSelectionPlugin()
Default constructor.
Definition: VolumeMeshSelectionPlugin.cc:85
VolumeMeshSelectionPlugin::lastPickedCell_
OpenVolumeMesh::CellHandle lastPickedCell_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:367
UpdateType
Update type class.
Definition: UpdateType.hh:70
VolumeMeshSelectionPlugin
Definition: VolumeMeshSelectionPlugin.hh:72
VolumeMeshSelectionPlugin::deleteSelectedVertices
void deleteSelectedVertices(int _objectId, bool _preserveManifoldness=true)
Delete selected vertices from mesh.
Definition: VolumeMeshSelectionFunctions.cc:203
VolumeMeshSelectionPlugin::deselectAllFaces
void deselectAllFaces(int _objectId)
Deselect all faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:589
SelectionInterface.hh
VolumeMeshSelectionPlugin::HFPair
std::pair< OpenVolumeMesh::HalfFaceHandle, OpenVolumeMesh::HalfFaceHandle > HFPair
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:344
VolumeMeshSelectionPlugin::invertCellSelection
void invertCellSelection(int _objectId)
Invert cell selection.
Definition: VolumeMeshSelectionFunctions.cc:942
SelectionInterface
Interface for all plugins which want to use selection functions.
Definition: SelectionInterface.hh:81
LoggingInterface.hh
KeyInterface.hh
LoggingInterface
Interface for all Plugins which do logging to the logging window of the framework.
Definition: LoggingInterface.hh:123
VolumeMeshSelectionPlugin::faceTypeActive
bool faceTypeActive()
Is face type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:214
VolumeMeshSelectionPlugin::slotLoadSelection
void slotLoadSelection(const INIFile &_file)
Load selection for specific objects in the scene.
Definition: VolumeMeshSelectionPlugin.cc:883
ACG::GLState
Definition: GLState.hh:220
VolumeMeshSelectionPlugin::slotKeyShortcutEvent
void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers)
One of the previously registered keys has been pressed.
Definition: VolumeMeshSelectionPlugin.cc:951
SelectVolumeAction
Traverse the scenegraph and call the selection function for all mesh nodes.
Definition: MeshObjectSelectionPlugin.hh:598
VolumeMeshSelectionPlugin::orientationMap_
std::map< OpenVolumeMesh::CellHandle, unsigned char > orientationMap_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:369
VolumeMeshSelectionPlugin::faceType_
PrimitiveType faceType_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:357
VolumeMeshSelectionPlugin::volumeSelection
bool volumeSelection(MeshT *_mesh, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection)
Surface volume selection tool.
Definition: VolumeMeshSelectionPluginT.cc:67
VolumeMeshSelectionPlugin::edgeTypeActive
bool edgeTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:208
VolumeMeshSelectionPlugin::selectAllHalfEdges
void selectAllHalfEdges(int _objectId)
Select all half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:413
VolumeMeshSelectionPlugin::selectCells
void selectCells(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:969
VolumeMeshSelectionPlugin::selectHalfEdges
void selectHalfEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:494
INIFile
Class for the handling of simple configuration files.
Definition: INIFile.hh:105
VolumeMeshSelectionPlugin::invertFaceSelection
void invertFaceSelection(int _objectId)
Invert face selection.
Definition: VolumeMeshSelectionFunctions.cc:616
VolumeMeshSelectionPlugin::selectAllVertices
void selectAllVertices(int _objectId)
Select all vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:56
SelectVolumeAction::operator()
bool operator()(BaseNode *_node)
Traverse the scenegraph and call the selection function for all mesh nodes.
Definition: MeshObjectSelectionPlugin.cc:2017
LoadSaveInterface.hh
VolumeMeshSelectionPlugin::selectHalfFaces
void selectHalfFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:821
IdList
std::vector< int > IdList
Standard Type for id Lists used for scripting.
Definition: DataTypes.hh:192
VolumeMeshSelectionPlugin::invertEdgeSelection
void invertEdgeSelection(int _objectId)
Invert edge selection.
Definition: VolumeMeshSelectionFunctions.cc:289
VolumeMeshSelectionPlugin::vertexType_
PrimitiveType vertexType_
Primitive type handles:
Definition: VolumeMeshSelectionPlugin.hh:355
VolumeMeshSelectionPlugin::deleteSelectedEdges
void deleteSelectedEdges(int _objectId, bool _preserveManifoldness=true)
Delete selected edges from mesh.
Definition: VolumeMeshSelectionFunctions.cc:381
VolumeMeshSelectionPlugin::deselectAllHalfEdges
void deselectAllHalfEdges(int _objectId)
Deselect all half-edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:440
ScriptInterface
Interface for all Plugins which provide scriptable Functions.
Definition: ScriptInterface.hh:67
VolumeMeshSelectionPlugin::selectAllFaces
void selectAllFaces(int _objectId)
Select all faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:562
VolumeMeshSelectionPlugin::selectFaces
void selectFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:643
VolumeMeshSelectionPlugin::getVertexSelection
IdList getVertexSelection(int _objectId)
Get current vertex selection.
Definition: VolumeMeshSelectionFunctions.cc:174
VolumeMeshSelectionPlugin::vertexTypeActive
bool vertexTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
Definition: VolumeMeshSelectionPlugin.cc:202
VolumeMeshSelectionPlugin::selectEdges
void selectEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:316
VolumeMeshSelectionPlugin::deselectAllVertices
void deselectAllVertices(int _objectId)
Deselect all vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:84
VolumeMeshSelectionPlugin::selectVertices
void selectVertices(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific vertices of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:138
VolumeMeshSelectionPlugin::getHalfFaceSelection
IdList getHalfFaceSelection(int _objectId)
Get current half-face selection.
Definition: VolumeMeshSelectionFunctions.cc:857
VolumeMeshSelectionPlugin::deleteSelectedCells
void deleteSelectedCells(int _objectId, bool _preserveManifoldness=true)
Delete selected cells from mesh.
Definition: VolumeMeshSelectionFunctions.cc:1034
VolumeMeshSelectionPlugin::volumeLassoPoints_
QVector< QPoint > volumeLassoPoints_
Keep volume lasso points.
Definition: VolumeMeshSelectionPlugin.hh:364
VolumeMeshSelectionPlugin::slotVolumeLassoSelection
void slotVolumeLassoSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a volume lasso selection.
Definition: VolumeMeshSelectionPlugin.cc:476
VolumeMeshSelectionPlugin::slotSelectionOperation
void slotSelectionOperation(QString _operation)
A specific operation is requested.
Definition: VolumeMeshSelectionPlugin.cc:228
VolumeMeshSelectionPlugin::invertHalfEdgeSelection
void invertHalfEdgeSelection(int _objectId)
Invert half-edge selection.
Definition: VolumeMeshSelectionFunctions.cc:467
VolumeMeshSelectionPlugin::getHalfEdgeSelection
IdList getHalfEdgeSelection(int _objectId)
Get current half-edge selection.
Definition: VolumeMeshSelectionFunctions.cc:530
VolumeMeshSelectionPlugin::selectAllEdges
void selectAllEdges(int _objectId)
Select all edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:235
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.cc:161
VolumeMeshSelectionPlugin::selectAllCells
void selectAllCells(int _objectId)
Select all cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:888
VolumeMeshSelectionPlugin::lastPickedOrientation_
unsigned char lastPickedOrientation_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:368
VolumeMeshSelectionPlugin::updateSlotDescriptions
void updateSlotDescriptions()
Set slot descriptions for scripting functions.
Definition: VolumeMeshSelectionPlugin.cc:193
BackupInterface
Interface class for backup handling.
Definition: BackupInterface.hh:75
ScriptInterface.hh
BaseInterface.hh
VolumeMeshSelectionPlugin::getEdgeSelection
IdList getEdgeSelection(int _objectId)
Get current edge selection.
Definition: VolumeMeshSelectionFunctions.cc:352
VolumeMeshSelectionPlugin::deleteSelectedFaces
void deleteSelectedFaces(int _objectId, bool _preserveManifoldness=true)
Delete selected faces from mesh.
Definition: VolumeMeshSelectionFunctions.cc:708
VolumeMeshSelectionPlugin::invertVertexSelection
void invertVertexSelection(int _objectId)
Invert vertex selection.
Definition: VolumeMeshSelectionFunctions.cc:111
VolumeMeshSelectionPlugin::getCommonFace
HFPair getCommonFace(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, const HexahedralMesh *_mesh) const
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.cc:777
PluginFunctions.hh
DataType
Predefined datatypes.
Definition: DataTypes.hh:96
HexahedralMesh.hh
VolumeMeshSelectionPlugin::environmentHandle_
QString environmentHandle_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:349
VolumeMeshSelectionPlugin::description
QString description()
Return a description of what the plugin is doing.
Definition: VolumeMeshSelectionPlugin.hh:169
Types.hh
VolumeMeshSelectionPlugin::floodFillSupportedTypes_
PrimitiveType floodFillSupportedTypes_
Handle to selection environment.
Definition: VolumeMeshSelectionPlugin.hh:361
VolumeMeshSelectionPlugin::name
QString name()
Return a name for the plugin.
Definition: VolumeMeshSelectionPlugin.hh:165
OpenVolumeMesh::GeometryKernel
Definition: GeometryKernel.hh:55
VolumeMeshSelectionPlugin::deselectAllCells
void deselectAllCells(int _objectId)
Deselect all cells of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:915
ToolboxInterface.hh
VolumeMeshSelectionPlugin::getFaceSelection
IdList getFaceSelection(int _objectId)
Get current face selection.
Definition: VolumeMeshSelectionFunctions.cc:679
VolumeMeshSelectionPlugin::deselectAllEdges
void deselectAllEdges(int _objectId)
Deselect all edges of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:262
VolumeMeshSelectionPlugin::slotSaveSelection
void slotSaveSelection(INIFile &_file)
Save selection for all objects in the scene.
Definition: VolumeMeshSelectionPlugin.cc:927
VolumeMeshSelectionPlugin::deselectAllHalfFaces
void deselectAllHalfFaces(int _objectId)
Deselect all half-faces of a volume mesh.
Definition: VolumeMeshSelectionFunctions.cc:767
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:746
VolumeMeshSelectionPlugin::slotFloodFillSelection
void slotFloodFillSelection(QMouseEvent *_event, double _maxAngle, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a flood fill selection.
Definition: VolumeMeshSelectionPlugin.cc:505