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