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 Interface class for Plugins which have to store information in ini files.
void selectAllHalfFaces(int _objectId)
Select all half-faces of a volume mesh.
void deselectAllHalfFaces(int _objectId)
Deselect all half-faces of a volume mesh.
PrimitiveType cellType_
Handle to selection environment.
unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, unsigned char _firstOrthDirection, const HexahedralMesh *_mesh) const
Handle to selection environment.
bool vertexTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
Logtype
Log types for Message Window.
bool cellTypeActive()
Is cell type active? (for use in plugins that need mesh selection)
OpenVolumeMesh::CellHandle lastPickedCell_
Handle to selection environment.
void deleteSelectedVertices(int _objectId, bool _preserveManifoldness=true)
Delete selected vertices from mesh.
void deselectAllFaces(int _objectId)
Deselect all faces of a volume mesh.
Interface for all Plugins which provide scriptable Functions.
PrimitiveType edgeType_
Handle to selection environment.
void deselectAllVertices(int _objectId)
Deselect all vertices of a volume mesh.
QString sheetSelectionHandle_
Handle to selection environment.
void slotSaveSelection(INIFile &_file)
Save selection for all objects in the scene.
PrimitiveType vertexType_
Primitive type handles:
void selectAllHalfEdges(int _objectId)
Select all half-edges of a volume mesh.
QString columnSelectionHandle_
Handle to selection environment.
VolumeMeshSelectionPlugin()
Default constructor.
std::pair< OpenVolumeMesh::HalfFaceHandle, OpenVolumeMesh::HalfFaceHandle > HFPair
Handle to selection environment.
void invertHalfFaceSelection(int _objectId)
Invert half-face selection.
void set_max_angle(const double _a)
set max angle for flood fill selection
bool edgeTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
void selectHalfEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-edges of a volume mesh.
PrimitiveType allSupportedTypes_
Handle to selection environment.
double max_angle_
Handle to selection environment.
Interface for all Plugins which do logging to the logging window of the framework.
OpenVolumeMesh::StatusAttrib * getStatus(int _objectId)
Handle to selection environment.
IdList getHalfEdgeSelection(int _objectId)
Get current half-edge selection.
void slotToggleSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a toggle selection.
void invertHalfEdgeSelection(int _objectId)
Invert half-edge selection.
QString name()
Return a name for the plugin.
IdList getHalfFaceSelection(int _objectId)
Get current half-face selection.
double get_max_angle()
get max angle for flood fill selection
void selectAllFaces(int _objectId)
Select all faces of a volume mesh.
bool volumeSelection(MeshT *_mesh, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection)
Surface volume selection tool.
unsigned char lastPickedOrientation_
Handle to selection environment.
void selectVertices(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific vertices of a volume mesh.
QString description()
Return a description of what the plugin is doing.
IdList getCellSelection(int _objectId)
Get current cell selection.
void slotFloodFillSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a flood fill selection.
~VolumeMeshSelectionPlugin()
Default destructor.
std::map< OpenVolumeMesh::CellHandle, unsigned char > orientationMap_
Handle to selection environment.
ParameterWidget * parameterWidget_
Handle to selection environment.
std::vector< int > IdList
Standard Type for id Lists used for scripting.
QVector< QPoint > volumeLassoPoints_
Keep volume lasso points.
void selectAllVertices(int _objectId)
Select all vertices of a volume mesh.
void deselectAllHalfEdges(int _objectId)
Deselect all half-edges of a volume mesh.
void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers)
One of the previously registered keys has been pressed.
Interface class from which all plugins have to be created.
IdList getVertexSelection(int _objectId)
Get current vertex selection.
void deselectAllCells(int _objectId)
Deselect all cells of a volume mesh.
void slotLoadSelection(const INIFile &_file)
Load selection for specific objects in the scene.
void slotVolumeLassoSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a volume lasso selection.
void updateSlotDescriptions()
Set slot descriptions for scripting functions.
void deselectAllEdges(int _objectId)
Deselect all edges of a volume mesh.
Keyboard Event Interface.
void selectHalfFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-faces of a volume mesh.
Interface for all plugins which want to use selection functions.
Traverse the scenegraph and call the selection function for all mesh nodes.
void deleteSelectedCells(int _objectId, bool _preserveManifoldness=true)
Delete selected cells from mesh.
void slotSelectionOperation(QString _operation)
A specific operation is requested.
void selectAllCells(int _objectId)
Select all cells of a volume mesh.
HFPair getCommonFace(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, const HexahedralMesh *_mesh) const
Handle to selection environment.
void selectFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific faces of a volume mesh.
bool faceTypeActive()
Is face type active? (for use in plugins that need mesh selection)
void invertEdgeSelection(int _objectId)
Invert edge selection.
IdList getFaceSelection(int _objectId)
Get current face selection.
void selectAllEdges(int _objectId)
Select all edges of a volume mesh.
void invertVertexSelection(int _objectId)
Invert vertex selection.
PrimitiveType faceType_
Handle to selection environment.
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) ...
IdList getEdgeSelection(int _objectId)
Get current edge selection.
void selectCells(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific cells of a volume mesh.
void selectEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific edges of a volume mesh.
QString environmentHandle_
Handle to selection environment.
void deleteSelectedFaces(int _objectId, bool _preserveManifoldness=true)
Delete selected faces from mesh.
Interface class for backup handling.
void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
Called whenever the user performs a custom selection.
PrimitiveType floodFillSupportedTypes_
Handle to selection environment.
void invertCellSelection(int _objectId)
Invert cell selection.
Class for the handling of simple configuration files.
void invertFaceSelection(int _objectId)
Invert face selection.
void deleteSelectedEdges(int _objectId, bool _preserveManifoldness=true)
Delete selected edges from mesh.