Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FileSTL.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 #ifndef FILESTLPLUGIN_HH
52 #define FILESTLPLUGIN_HH
53 
54 #include <QObject>
55 class QCheckBox;
56 class QLabel;
57 class QSpinBox;
58 
67 
69 
72 {
73  Q_OBJECT
74  Q_INTERFACES(FileInterface)
75  Q_INTERFACES(LoadSaveInterface)
76  Q_INTERFACES(LoggingInterface)
77  Q_INTERFACES(BaseInterface)
78  Q_INTERFACES(ScriptInterface)
79 
80 #if QT_VERSION >= 0x050000
81  Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-FileSTL")
82 #endif
83 
84  signals:
85  void openedFile( int _id );
86  void addEmptyObject( DataType _type, int& _id);
87  void load(QString _filename, DataType _type, int& _id);
88  void save(int _id , QString _filename );
89  void log(Logtype _type, QString _message);
90  void log(QString _message);
91  void updateView();
92  void updatedObject(int _identifier, const UpdateType& _type);
93 
94  void deleteObject( int _id );
95 
96  private slots:
97 
98  void fileOpened( int /*_id*/ ){};
99 
100  void noguiSupported( ) {} ;
101 
102  void initializePlugin();
103 
105  void slotLoadDefault();
106 
108  void slotSaveDefault();
109 
110  public :
111 
112  FileSTLPlugin();
113 
114  ~FileSTLPlugin() {};
115 
116  QString name() { return (QString("FileSTL")); };
117  QString description( ) { return (QString(tr("Load/Save STL-Files"))); };
118 
120 
121  QString getSaveFilters();
122  QString getLoadFilters();
123 
124  QWidget* saveOptionsWidget(QString /*_currentFilter*/);
125  QWidget* loadOptionsWidget(QString /*_currentFilter*/);
126 
127  public slots:
128 
130  int loadObject(QString _filename);
131 
132  bool saveObject(int _id, QString _filename);
133 
134  QString version() { return QString("1.0"); };
135 
136  private :
137 
138  //Option Widgets
139  QWidget* saveOptions_;
140  QWidget* loadOptions_;
141 
142  QCheckBox* saveBinary_;
143  QLabel* savePrecisionLabel_;
144  QSpinBox* savePrecision_;
145 
146  QCheckBox* loadFaceNormal_;
147 
148  QPushButton* saveDefaultButton_;
149  QPushButton* loadDefaultButton_;
150 };
151 
152 #endif //FILESTLPLUGIN_HH
QString getSaveFilters()
Definition: FileSTL.cc:86
DataType supportedType()
Return your supported object type( e.g. DATA_TRIANGLE_MESH )
Definition: FileSTL.cc:92
FileSTLPlugin()
Constructor.
Definition: FileSTL.cc:60
void slotLoadDefault()
Slot called when user wants to save the given Load options as default.
Definition: FileSTL.cc:269
Interface for all plugins which want to Load or Save files and create Objects.
Interface for all Plugins which provide scriptable Functions.
Interface for all Plugins which do logging to the logging window of the framework.
Update type class.
Definition: UpdateType.hh:70
void slotSaveDefault()
Slot called when user wants to save the given Save options as default.
Definition: FileSTL.cc:276
Interface class from which all plugins have to be created.
QString description()
Return a description of what the plugin is doing.
Definition: FileSTL.hh:117
Logtype
Log types for Message Window.
int loadObject(QString _filename)
Loads Object as triangle mesh.
Definition: FileSTL.cc:99
void noguiSupported()
Definition: FileSTL.hh:100
Interface class for file handling.
Predefined datatypes.
Definition: DataTypes.hh:96
void initializePlugin()
Initialize Plugin.
Definition: FileSTL.cc:75
QString name()
Return a name for the plugin.
Definition: FileSTL.hh:116
QWidget * saveOptionsWidget(QString)
Definition: FileSTL.cc:206
QWidget * loadOptionsWidget(QString)
Definition: FileSTL.cc:243
QString getLoadFilters()
Definition: FileSTL.cc:80