Developer Documentation
SkeletonObjectInfoPlugin.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 //=============================================================================
45 //
46 // CLASS InfoMeshObjectPlugin
47 //
48 // Author: David Bommes <bommes@cs.rwth-aachen.de>
49 //=============================================================================
50 
51 #ifndef INFOPLUGIN_HH
52 #define INFOPLUGIN_HH
53 
54 //== INCLUDES =================================================================
55 
56 #include <QObject>
57 
60 
65 
66 #include "infoDialog.hh"
67 
68 //== CLASS DEFINITION =========================================================
69 
70 
76 {
77  Q_OBJECT
78  Q_INTERFACES(BaseInterface)
79  Q_INTERFACES(InformationInterface)
80  Q_INTERFACES(LoggingInterface)
81  Q_INTERFACES(StatusbarInterface)
82 
83  Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-SkeletonObjectInfo")
84 
85 
86  signals:
87 
88  // BaseInterface
89  void setSlotDescription(QString _slotName, QString _slotDescription,
90  QStringList _parameters, QStringList _descriptions);
91 
92  // LoggingInterface
93  void log(Logtype _type, QString _message);
94  void log(QString _message);
95 
96  // StatusbarInterface
97  void addWidgetToStatusbar(QWidget* _widget);
98 
99  private slots :
100 
101  // BaseInterface
102  void initializePlugin();
103  void pluginsInitialized();
104 
105  void noguiSupported( ) {} ;
106 
107  // InformationInterface
108  void slotInformationRequested(const QPoint _clickedPoint, DataType _type);
110 
111  public :
112 
113  // default constructor
114  InfoSkeletonObjectPlugin(): info_(0) {};
115 
116  // default destructor
118 
120  QString name(){ return (QString("InfoSkeletonObject")); };
121 
123  QString description() { return (QString(tr("Provides Information on Skeleton Objects"))); };
124 
125  private :
126  void printSkeletonInfo( Skeleton* _id, unsigned int _objectId, unsigned int _index, ACG::Vec3d& _hitPoint );
127 
128  InfoDialog* info_;
129 
130  public slots:
132  int jointCount(int _skeletonID);
134  int branchCount(int _skeletonID);
136  int leafCount(int _skeletonID);
137 
139  Vector boundingBoxMin(int _skeletonID);
141  Vector boundingBoxMax(int _skeletonID);
143  Vector boundingBoxSize(int _skeletonID);
144 
146  double boneLength(int _skeletonID, int _jointID);
147 
149  double minBoneLength(int _skeletonID);
151  double maxBoneLength(int _skeletonID);
153  double meanBoneLength(int _skeletonID);
154 
155  private:
157  void setDescriptions();
158 
159  public slots:
160  QString version() { return QString("1.0"); };
161 
164 };
165 
166 #endif //MOVEPLUGIN_HH
167 
double meanBoneLength(int _skeletonID)
get the mean bone length
void pluginsInitialized()
initialize the plugin
Logtype
Log types for Message Window.
Vector boundingBoxMin(int _skeletonID)
get minumum bounding box point
int jointCount(int _skeletonID)
get total number of joints for a given skeleton
Vector boundingBoxMax(int _skeletonID)
get maximum bounding box point
Control OpenFlippers status bar.
DataType supportedDataTypes()
Get data type for information requests.
Interface class for providing information on objects.
double minBoneLength(int _skeletonID)
get the minimal bone length
void slotInformationRequested(const QPoint _clickedPoint, DataType _type)
Show information dialog on clicked object.
double maxBoneLength(int _skeletonID)
get the maximal bone length
void setDescriptions()
set scripting slot descriptions
QString name()
Name of the Plugin.
double boneLength(int _skeletonID, int _jointID)
get the length of a bone
Interface for all Plugins which do logging to the logging window of the framework.
Plugin to visualize information about objects in the scene.
QString description()
Description of the Plugin.
Vector boundingBoxSize(int _skeletonID)
get the size of the bounding box
Interface class from which all plugins have to be created.
int branchCount(int _skeletonID)
get total number of branches for a given skeleton
int leafCount(int _skeletonID)
get total number of leaves for a given skeleton
Predefined datatypes.
Definition: DataTypes.hh:83