Developer Documentation
VolumeMeshObjectInfoPlugin.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: 16191 $ *
45 * $LastChangedBy: moebius $ *
46 * $Date: 2013-01-24 15:35:53 +0100 (Thu, 24 Jan 2013) $ *
47 * *
48 \*===========================================================================*/
49 
50 #ifndef INFOPLUGIN_HH
51 #define INFOPLUGIN_HH
52 
53 //== INCLUDES =================================================================
54 
55 #include <QObject>
56 
60 
61 //== CLASS DEFINITION =========================================================
62 
63 
69 {
70  Q_OBJECT
71  Q_INTERFACES(BaseInterface)
72  Q_INTERFACES(LoggingInterface)
73 
74 #if QT_VERSION >= 0x050000
75  Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-VolumeMeshObjectInfo")
76 #endif
77 
78  signals:
79  // BaseInterface
80  void setSlotDescription(QString _slotName, QString _slotDescription,
81  QStringList _parameters, QStringList _descriptions);
82 
83  // LoggingInterface
84  void log(Logtype _type, QString _message);
85  void log(QString _message);
86 
87  private slots :
88 
89  // BaseInterface
90  void initializePlugin();
91  void pluginsInitialized();
92  void slotObjectUpdated( int _identifier, const UpdateType& _type );
93  void slotObjectSelectionChanged( int _identifier );
94  void slotAllCleared();
95 
96  void noguiSupported( ) {}
97 
98  public :
99 
100  // default constructor
102 
103  // default destructor
105 
107  QString name(){ return (QString("InfoVolumeMeshObject")); }
108 
110  QString description() { return (QString(tr("Provides Information on Volume Mesh Objects"))); }
111 
112  private :
113 
114  template< class MeshT >
115  void printMeshInfo( MeshT* _mesh, int _id, unsigned int _face, ACG::Vec3d& _hitPoint );
116 
117 //===========================================================================
120 //===========================================================================
121 
122  public slots:
123 
125  int vertexCount(int _id);
127  int edgeCount(int _id);
129  int faceCount(int _id);
131  int cellCount(int _id);
132 
133  public slots:
134  QString version() { return QString("0.1"); }
135 
136  private:
138  void setDescriptions();
139 
142 };
143 
144 #endif //MOVEPLUGIN_HH
145 
int faceCount(int _id)
get total number of faces for a given object
Logtype
Log types for Message Window.
int edgeCount(int _id)
get total number of edges for a given object
QString version()
set scripting slot descriptions
QString description()
Description of the Plugin.
Interface class from which all plugins have to be created.
QString name()
Name of the Plugin.
void setDescriptions()
set scripting slot descriptions
void pluginsInitialized()
initialize the plugin
Update type class.
Definition: UpdateType.hh:70
Interface for all Plugins which do logging to the logging window of the framework.
int vertexCount(int _id)
get total number of vertices for a given object
int cellCount(int _id)
get total number of cells for a given object
Plugin to visualize information about open volume meshs in the scene.