50 #ifndef VOLUMEMESHSELECTIONPLUGIN_HH
51 #define VOLUMEMESHSELECTIONPLUGIN_HH
62 #include <OpenFlipper/BasePlugin/INIInterface.hh>
67 #include <OpenFlipper/INIFile/INIFile.hh>
84 #if QT_VERSION >= 0x050000
85 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);
120 void showToggleSelectionMode(QString _handleName,
bool _show, SelectionInterface::PrimitiveType _associatedTypes);
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);
127 void getActiveDataTypes(SelectionInterface::TypeList& _types);
128 void getActivePrimitiveType(SelectionInterface::PrimitiveType& _type);
129 void targetObjectsOnly(
bool& _targetsOnly);
131 void registerKeyShortcut(
int _key, Qt::KeyboardModifiers _modifiers = Qt::NoModifier);
136 void loadIniFile(
INIFile& _ini,
int _id);
137 void saveIniFile(
INIFile& _ini,
int _id);
140 void initializePlugin();
141 void pluginsInitialized();
142 void noguiSupported() {};
146 void slotToggleSelection(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);
160 void loadSelection(
int _objId,
const QString& _filename);
166 return (QString(tr(
"VolumeMesh Selection")));
170 return (QString(tr(
"Allows to select VolumeMeshes")));
187 return QString(
"1.0");
330 template<
class MeshT>
332 PrimitiveType _primitiveTypes,
bool _deselection);
335 template<
class MeshT>
337 PrimitiveType _primitiveTypes,
bool _deselection);
344 typedef std::pair<OpenVolumeMesh::HalfFaceHandle,OpenVolumeMesh::HalfFaceHandle>
HFPair;
380 unsigned int _type,
bool _deselection,
ACG::GLState& _state)
385 , deselection_(_deselection)
402 #if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHSELECTIONPLUGINT_CC)
403 #define VOLUMEMESHSELECTIONPLUGINT_TEMPLATES
404 #include "VolumeMeshSelectionPluginT.cc"
408 #endif // VOLUMEMESHSELECTIONPLUGIN_HH defined
QString columnSelectionHandle_
Handle to selection environment.
void slotCustomSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, QString _customIdentifier, bool _deselect)
Called whenever the user performs a custom selection.
PrimitiveType allSupportedTypes_
Handle to selection environment.
Interface class from which all plugins have to be created.
IdList getCellSelection(int _objectId)
Get current cell selection.
~VolumeMeshSelectionPlugin()
Default destructor.
QString sheetSelectionHandle_
Handle to selection environment.
void invertHalfFaceSelection(int _objectId)
Invert half-face selection.
bool cellTypeActive()
Is cell type active? (for use in plugins that need mesh selection)
Keyboard Event Interface.
PrimitiveType edgeType_
Handle to selection environment.
Interface class for Plugins which have to store information in ini files.
PrimitiveType cellType_
Handle to selection environment.
Logtype
Log types for Message Window.
void slotToggleSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a toggle selection.
void selectAllHalfFaces(int _objectId)
Select all half-faces of a volume mesh.
VolumeMeshSelectionPlugin()
Default constructor.
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.
std::pair< OpenVolumeMesh::HalfFaceHandle, OpenVolumeMesh::HalfFaceHandle > HFPair
Handle to selection environment.
void invertCellSelection(int _objectId)
Invert cell selection.
Interface for all plugins which want to use selection functions.
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 slotLoadSelection(const INIFile &_file)
Load selection for specific objects in the scene.
void slotKeyShortcutEvent(int _key, Qt::KeyboardModifiers _modifiers)
One of the previously registered keys has been pressed.
Traverse the scenegraph and call the selection function for all mesh nodes.
std::map< OpenVolumeMesh::CellHandle, unsigned char > orientationMap_
Handle to selection environment.
PrimitiveType faceType_
Handle to selection environment.
bool volumeSelection(MeshT *_mesh, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection)
Surface volume selection tool.
bool edgeTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
void selectAllHalfEdges(int _objectId)
Select all half-edges of a volume mesh.
void selectCells(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific cells of a volume mesh.
void selectHalfEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-edges of a volume mesh.
Class for the handling of simple configuration files.
void invertFaceSelection(int _objectId)
Invert face selection.
void selectAllVertices(int _objectId)
Select all vertices of a volume mesh.
bool operator()(BaseNode *_node)
Traverse the scenegraph and call the selection function for all mesh nodes.
void selectHalfFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific half-faces of a volume mesh.
std::vector< int > IdList
Standard Type for id Lists used for scripting.
void invertEdgeSelection(int _objectId)
Invert edge selection.
PrimitiveType vertexType_
Primitive type handles:
void deleteSelectedEdges(int _objectId, bool _preserveManifoldness=true)
Delete selected edges from mesh.
void deselectAllHalfEdges(int _objectId)
Deselect all half-edges of a volume mesh.
Interface for all Plugins which provide scriptable Functions.
void selectAllFaces(int _objectId)
Select all faces of a volume mesh.
void selectFaces(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific faces of a volume mesh.
IdList getVertexSelection(int _objectId)
Get current vertex selection.
bool vertexTypeActive()
Is vertex type active? (for use in plugins that need mesh selection)
void selectEdges(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific edges of a volume mesh.
void deselectAllVertices(int _objectId)
Deselect all vertices of a volume mesh.
void selectVertices(int _objectId, const IdList &_ids, bool _deselect=false)
Select specific vertices of a volume mesh.
IdList getHalfFaceSelection(int _objectId)
Get current half-face selection.
void deleteSelectedCells(int _objectId, bool _preserveManifoldness=true)
Delete selected cells from mesh.
QVector< QPoint > volumeLassoPoints_
Keep volume lasso points.
void slotVolumeLassoSelection(QMouseEvent *_event, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a volume lasso selection.
void slotSelectionOperation(QString _operation)
A specific operation is requested.
void invertHalfEdgeSelection(int _objectId)
Invert half-edge selection.
IdList getHalfEdgeSelection(int _objectId)
Get current half-edge selection.
void selectAllEdges(int _objectId)
Select all edges of a volume 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) ...
void selectAllCells(int _objectId)
Select all cells of a volume mesh.
unsigned char lastPickedOrientation_
Handle to selection environment.
void updateSlotDescriptions()
Set slot descriptions for scripting functions.
Interface class for backup handling.
IdList getEdgeSelection(int _objectId)
Get current edge selection.
void deleteSelectedFaces(int _objectId, bool _preserveManifoldness=true)
Delete selected faces from mesh.
void invertVertexSelection(int _objectId)
Invert vertex selection.
HFPair getCommonFace(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, const HexahedralMesh *_mesh) const
Handle to selection environment.
QString environmentHandle_
Handle to selection environment.
QString description()
Return a description of what the plugin is doing.
PrimitiveType floodFillSupportedTypes_
Handle to selection environment.
QString name()
Return a name for the plugin.
void deselectAllCells(int _objectId)
Deselect all cells of a volume mesh.
IdList getFaceSelection(int _objectId)
Get current face selection.
void deselectAllEdges(int _objectId)
Deselect all edges of a volume mesh.
void slotSaveSelection(INIFile &_file)
Save selection for all objects in the scene.
void deselectAllHalfFaces(int _objectId)
Deselect all half-faces of a volume mesh.
unsigned char getOrthogonalOrientationOfNeighborCell(const OpenVolumeMesh::CellHandle &_ch1, const OpenVolumeMesh::CellHandle &_ch2, unsigned char _firstOrthDirection, const HexahedralMesh *_mesh) const
Handle to selection environment.
void slotFloodFillSelection(QMouseEvent *_event, double _maxAngle, SelectionInterface::PrimitiveType _currentType, bool _deselect)
Called whenever the user performs a flood fill selection.