Developer Documentation
TypeBSplineSurface.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$ *
45 * $LastChangedBy$ *
46 * $Date$ *
47 * *
48 \*===========================================================================*/
49 
50 //=============================================================================
51 //
52 // CLASS Type BSpline Surface Plugin
53 //
54 // Author: Ellen Dekkers <dekkers@cs.rwth-aachen.de>
55 //
56 // Date: 2009-12-14 19:18:57 +0100 (Mo, 14. Dez 2009)
57 //
58 //=============================================================================
59 
60 
61 #ifndef TYPEBSPLINESURFACEPLUGIN_HH
62 #define TYPEBSPLINESURFACEPLUGIN_HH
63 
64 #include <QObject>
65 
66 
73 
75 
77 {
78  Q_OBJECT
79  Q_INTERFACES(BaseInterface)
80  Q_INTERFACES(TypeInterface)
81  Q_INTERFACES(LoggingInterface)
82  Q_INTERFACES(LoadSaveInterface)
83  Q_INTERFACES(ContextMenuInterface)
84 
85 #if QT_VERSION >= 0x050000
86  Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-TypeBSplineSurface")
87 #endif
88 
89  signals:
90 
91  void log(Logtype _type, QString _message);
92  void log(QString _message);
93 
94  // LoadSave Interface
95  void emptyObjectAdded( int _id );
96 
97  // ContextMenuInterface
98  void addContextMenuItem(QAction* _action , ContextMenuType _type);
99  void addContextMenuItem(QAction* _action , DataType _objectType , ContextMenuType _type );
100 
101  private slots:
102 
103  // BaseInterface
104  void pluginsInitialized();
105  void noguiSupported( ) {} ;
106 
107  // ContextMenuInterface
108  void slotUpdateContextMenu( int _objectId );
109 
110 
111  private slots:
112 
114  void slotRenderControlNet();
115 
117  void slotRenderSurface();
118 
120  void slotRenderSelection(QAction* _action);
121 
122  public :
123 
126 
127  QString name() { return (QString("TypeBSplineSurface")); };
128  QString description( ) { return (QString(tr("Register BSpline Surface type "))); };
129 
130  bool registerType();
131 
133 
134  int addEmpty();
135 
136  public slots:
137 
138  QString version() { return QString("1.1"); };
139 
140  private:
142  QAction* renderControlNetAction_;
143 
146 
149  QAction* renderKnotSelectionAction_;
150  QAction* renderNoSelectionAction_;
151 
152 };
153 
154 #endif //TYPEBSPLINESURFACEPLUGIN_HH
int addEmpty()
Create an empty object.
Interface class for creating custom context menus.
Predefined datatypes.
Definition: DataTypes.hh:96
void slotRenderControlNet()
Slot triggered from context menu, if the control net should be rendered.
QAction * renderSurfaceAction_
Context menu action.
QAction * renderControlNetAction_
Context menu action.
Logtype
Log types for Message Window.
void pluginsInitialized()
Second initialization phase.
Interface class for type definitions.
void slotRenderSelection(QAction *_action)
Slot triggered from context menu, if the selection rendering should be altered.
void slotRenderSurface()
Slot triggered from context menu, if the surface should be rendered.
Interface class from which all plugins have to be created.
DataType supportedType()
Return your supported object type( e.g. DATA_TRIANGLE_MESH )
Interface for all Plugins which do logging to the logging window of the framework.
QString name()
Return a name for the plugin.
QString description()
Return a description of what the plugin is doing.
void slotUpdateContextMenu(int _objectId)
Interface for all plugins which want to Load or Save files and create Objects.
QAction * renderCPSelectionAction_
Context menu action (render selection texture)