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 *                                                                         *
9 *   This program is free software; you can redistribute it and/or modify  *
10 *   it under the terms of the GNU General Public License as published by  *
11 *   the Free Software Foundation; either version 2 of the License, or     *
12 *   (at your option) any later version.                                   *
13 *                                                                         *
14 ***************************************************************************/
15 #ifndef ADAPT_H
16 #define ADAPT_H
17 
18 #include <QtCore>
19 #include <osg/Vec3>
20 #include <osg/Texture2D>
21 #include <osg/Drawable>
22 #include <osg/Geometry>
23 #include <osg/Vec4>
24 #include <cassert>
25 #include "oPRCFile.h"
26 #include "pageitem_osgframe.h"
27 /*
28 class prcfile : public oPRCFile
29 {
30 		std::list<PRCentity *> entities;
31 	public:
32 		prcfile ( std::string name ) : oPRCFile ( name.c_str() ) {}
33 		~prcfile()
34 		{
35 			for ( std::list<PRCentity *>::iterator p=entities.begin(); p != entities.end(); ++p )
36 			{
37 				assert ( *p );
38 				delete *p;
39 			}
40 		}
41 
42 		void add ( PRCentity* e )
43 		{
44 			entities.push_back ( e );
45 			oPRCFile::add ( e );
46 		}
47 };
48 */
49 class PRCExporter
50 {
51 	public:
PRCExporter()52 		PRCExporter() {}
~PRCExporter()53 		virtual ~PRCExporter() {}
54 		void convertFile(QString fileName, PageItem_OSGFrame *frame);
55 	private:
56 		void analyse ( osg::Node *nd, oPRCFile *out );
57 		void getCurrentMaterial(osg::Geode *geode);
58 		void getCurrentMaterial(osg::Drawable *geode);
59 		void analyseGeode ( osg::Geode *geode, oPRCFile *out );
60 		void analysePrimSet ( osg::PrimitiveSet*prset, oPRCFile *out, osg::Geometry *geom, const osg::Vec3Array *verts );
61 		PRCmaterial currentMaterial;
62 };
63 
64 #endif
65