42 #ifndef VOLUMEMESHSELECTIONPLUGIN_HH 43 #define VOLUMEMESHSELECTIONPLUGIN_HH 54 #include <OpenFlipper/BasePlugin/INIInterface.hh> 59 #include <OpenFlipper/INIFile/INIFile.hh> 63 #ifdef ENABLE_TETRAHEDRALMESH_SUPPORT 81 Q_PLUGIN_METADATA(IID
"org.OpenFlipper.Plugins.Plugin-SelectionVolumeMesh")
103 void nodeVisibilityChanged(
int _identifier);
104 void setSlotDescription(QString _slotName, QString _slotDescription,
105 QStringList _parameters, QStringList _descriptions);
108 void log(
Logtype _type, QString _message);
109 void log(QString _message);
112 void scriptInfo(QString _functionName);
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);
121 void showToggleSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes);
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);
128 void getActiveDataTypes(SelectionInterface::TypeList& _types);
129 void getActivePrimitiveType(SelectionInterface::PrimitiveType& _type);
130 void targetObjectsOnly(
bool& _targetsOnly);
132 void registerKeyShortcut(
int _key, Qt::KeyboardModifiers _modifiers = Qt::NoModifier);
137 void loadIniFile(
INIFile& _ini,
int _id);
138 void saveIniFile(
INIFile& _ini,
int _id);
141 void initializePlugin();
142 void pluginsInitialized();
143 void noguiSupported() {};
147 void slotToggleSelection(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);
161 void loadSelection(
int _objId,
const QString& _filename);
167 return (QString(tr(
"VolumeMesh Selection")));
171 return (QString(tr(
"Allows to select VolumeMeshes")));
188 return QString(
"1.0");
331 template<
class MeshT>
333 PrimitiveType _primitiveTypes,
bool _deselection);
336 template<
class MeshT>
338 PrimitiveType _primitiveTypes,
bool _deselection);
345 typedef std::pair<OpenVolumeMesh::HalfFaceHandle,OpenVolumeMesh::HalfFaceHandle>
HFPair;
389 unsigned int _type,
bool _deselection,
ACG::GLState& _state)
394 , deselection_(_deselection)
411 #if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHSELECTIONPLUGINT_CC) 412 #define VOLUMEMESHSELECTIONPLUGINT_TEMPLATES 413 #include "VolumeMeshSelectionPluginT_impl.hh" 417 #endif // VOLUMEMESHSELECTIONPLUGIN_HH defined
OpenVolumeMesh::CellHandle lastPickedCell_
Handle to selection environment.
void slotSaveSelection(INIFile &_file)
Save selection for all objects in the scene.
void selectFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific faces of a volume mesh.
void selectAllCells(int _objectId)
Select all cells of a volume mesh.
~VolumeMeshSelectionPlugin()
Default destructor.
unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, unsigned char _firstOrthDirection, const HexahedralMesh *_mesh) const
Handle to selection environment.
void selectAllHalfEdges(int _objectId)
Select all half-edges of a volume mesh.
void deselectAllEdges(int _objectId)
Deselect all edges of a volume mesh.
void selectHalfEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-edges of a volume mesh.
void selectCells(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific cells of a volume mesh.
QString environmentHandle_
Handle to selection environment.
void deleteSelectedEdges(int _objectId, bool _preserveManifoldness=true)
Delete selected edges from mesh.
void selectAllVertices(int _objectId)
Select all vertices of a volume mesh.
void selectEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific edges of a volume mesh.
void slotVolumeLassoSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a volume lasso selection.
void slotFloodFillSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a flood fill selection.
void slotLoadSelection(const INIFile &_file)
Load selection for specific objects in the scene.
OpenVolumeMesh::StatusAttrib * getStatus(int _objectId)
Handle to selection environment.
double max_angle_
Handle to selection environment.
Logtype
Log types for Message Window.
bool edgeTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
PrimitiveType allSupportedTypes_
Handle to selection environment.
IdList getCellSelection(int _objectId)
Get current cell selection.
Interface for all Plugins which do logging to the logging window of the framework.
bool faceTypeActive()
Is face type active? (for use in plugins that need mesh selection)
void deleteSelectedFaces(int _objectId, bool _preserveManifoldness=true)
Delete selected faces from mesh.
IdList getHalfFaceSelection(int _objectId)
Get current half-face selection.
void deselectAllVertices(int _objectId)
Deselect all vertices of a volume mesh.
HFPair getCommonFace(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, const HexahedralMesh *_mesh) const
Handle to selection environment.
QString name()
Return a name for the plugin.
void selectHalfFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-faces of a volume mesh.
IdList getEdgeSelection(int _objectId)
Get current edge selection.
std::vector< int > IdList
Standard Type for id Lists used for scripting.
bool volumeSelection(MeshT *_mesh, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection)
Surface volume selection tool.
void deleteSelectedVertices(int _objectId, bool _preserveManifoldness=true)
Delete selected vertices from mesh.
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) ...
bool vertexTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
void invertHalfEdgeSelection(int _objectId)
Invert half-edge selection.
void selectAllFaces(int _objectId)
Select all faces of a volume mesh.
void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers)
One of the previously registered keys has been pressed.
void selectAllHalfFaces(int _objectId)
Select all half-faces of a volume mesh.
QVector< QPoint > volumeLassoPoints_
Keep volume lasso points.
bool cellTypeActive()
Is cell type active? (for use in plugins that need mesh selection)
PrimitiveType faceType_
Handle to selection environment.
void deselectAllFaces(int _objectId)
Deselect all faces of a volume mesh.
PrimitiveType cellType_
Handle to selection environment.
PrimitiveType edgeType_
Handle to selection environment.
QString columnSelectionHandle_
Handle to selection environment.
PrimitiveType vertexType_
Primitive type handles:
Interface for all plugins which want to use selection functions.
void deselectAllCells(int _objectId)
Deselect all cells of a volume mesh.
void deleteSelectedCells(int _objectId, bool _preserveManifoldness=true)
Delete selected cells from mesh.
void invertEdgeSelection(int _objectId)
Invert edge selection.
void invertCellSelection(int _objectId)
Invert cell selection.
IdList getFaceSelection(int _objectId)
Get current face selection.
void slotToggleSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a toggle selection.
void slotSelectionOperation(QString _operation)
A specific operation is requested.
unsigned char lastPickedOrientation_
Handle to selection environment.
Keyboard Event Interface.
Interface class for Plugins which have to store information in ini files.
void deselectAllHalfFaces(int _objectId)
Deselect all half-faces of a volume mesh.
void selectAllEdges(int _objectId)
Select all edges of a volume mesh.
std::map< OpenVolumeMesh::CellHandle, unsigned char > orientationMap_
Handle to selection environment.
Class for the handling of simple configuration files.
ParameterWidget * parameterWidget_
Handle to selection environment.
IdList getVertexSelection(int _objectId)
Get current vertex selection.
void deselectAllHalfEdges(int _objectId)
Deselect all half-edges of a volume mesh.
void selectVertices(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific vertices of a volume mesh.
std::pair< OpenVolumeMesh::HalfFaceHandle, OpenVolumeMesh::HalfFaceHandle > HFPair
Handle to selection environment.
Interface for all Plugins which provide scriptable Functions.
void set_max_angle(const double _a)
set max angle for flood fill selection
QString description()
Return a description of what the plugin is doing.
void invertFaceSelection(int _objectId)
Invert face selection.
void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
Called whenever the user performs a custom selection.
double get_max_angle()
get max angle for flood fill selection
VolumeMeshSelectionPlugin()
Default constructor.
void invertVertexSelection(int _objectId)
Invert vertex selection.
QString sheetSelectionHandle_
Handle to selection environment.
void updateSlotDescriptions()
Set slot descriptions for scripting functions.
IdList getHalfEdgeSelection(int _objectId)
Get current half-edge selection.
PrimitiveType floodFillSupportedTypes_
Handle to selection environment.
Interface class from which all plugins have to be created.
Interface class for backup handling.
Traverse the scenegraph and call the selection function for all mesh nodes.
void invertHalfFaceSelection(int _objectId)
Invert half-face selection.