Scribus
Open source desktop publishing at your fingertips
osgeditor.h
1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 /***************************************************************************
8 * Copyright (C) 2009 by Franz Schmid *
9 * franz.schmid@altmuehlnet.de *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * GNU General Public License for more details. *
20 * *
21 * You should have received a copy of the GNU General Public License *
22 * along with this program; if not, write to the *
23 * Free Software Foundation, Inc., *
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
25 ***************************************************************************/
26 
27 #ifndef OSGEDITOR_H
28 #define OSGEDITOR_H
29 
30 #include <QDialog>
31 #include "ui_osgeditor.h"
32 #include "scribusapi.h"
33 #include "scribusdoc.h"
34 #include "scribus.h"
35 #include "pageitem_osgframe.h"
36 #include <osg/StateSet>
37 #include <osg/Group>
38 #include <osg/Drawable>
39 #include <osg/Geometry>
40 
41 class SCRIBUS_API OSGEditorDialog : public QDialog, Ui::OSGEditor
42 {
43  Q_OBJECT
44 
45  public:
46  OSGEditorDialog(QWidget* parent, PageItem_OSGFrame *frame, QString osgFilterString);
47  ~OSGEditorDialog() {};
48 
49  public slots:
50  void clearDisplay();
51  void setCameraValues();
52  void changeView(QString viewName);
53  void addView();
54  void removeView();
55  void renameView(QString newName);
56  void changeRenderMode(int mode);
57  void changeACcolor();
58  void changeFCcolor();
59  void changeTransparency(double value);
60  void changeLightMode(int mode);
61  void reportCamera();
62  void openFile();
63  void accept();
64 
65  private:
66  void analyse(osg::Node *nd, double transparency);
67  void analyseGeode(osg::Geode *geode, double transparency);
68 
69  protected:
70  PageItem_OSGFrame *currItem;
71  QHash<QString, PageItem_OSGFrame::viewDefinition> viewMap;
73  QString currentViewName;
74  osg::ref_ptr<osg::Group> rootnode;
75  osg::ref_ptr<osg::Group> decorator;
76  osg::ref_ptr<osg::Node> loadedModel;
77  osg::ref_ptr<osg::Node> usedModel;
78  osg::ref_ptr<osg::Node> usedModel2;
79  osg::ref_ptr<osg::StateSet> default_stateset;
80  QString modelFile;
81  QString filterString;
82 };
83 
84 #endif
Definition: pageitem_osgframe.h:93
Definition: osgeditor.h:41
Definition: pageitem_osgframe.h:38