QtiPlot 0.9.7.3
|
00001 /*************************************************************************** 00002 File : importOPJ.h 00003 Project : QtiPlot 00004 -------------------------------------------------------------------- 00005 Copyright : (C) 2006-2007 by Ion Vasilief, Alex Kargovsky 00006 Email (use @ for *) : ion_vasilief*yahoo.fr, kargovsky*yumr.phys.msu.su 00007 Description : Origin project import class 00008 00009 ***************************************************************************/ 00010 00011 /*************************************************************************** 00012 * * 00013 * This program is free software; you can redistribute it and/or modify * 00014 * it under the terms of the GNU General Public License as published by * 00015 * the Free Software Foundation; either version 2 of the License, or * 00016 * (at your option) any later version. * 00017 * * 00018 * This program is distributed in the hope that it will be useful, * 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00021 * GNU General Public License for more details. * 00022 * * 00023 * You should have received a copy of the GNU General Public License * 00024 * along with this program; if not, write to the Free Software * 00025 * Foundation, Inc., 51 Franklin Street, Fifth Floor, * 00026 * Boston, MA 02110-1301 USA * 00027 * * 00028 ***************************************************************************/ 00029 #ifndef IMPORTOPJ_H 00030 #define IMPORTOPJ_H 00031 00032 #include "ApplicationWindow.h" 00033 #include <OriginFile.h> 00034 #include <ScaleEngine.h> 00035 #include "qwt3d_types.h" 00036 #include "qwt3d_coordsys.h" 00037 #include <qwt_symbol.h> 00038 00040 class ImportOPJ 00041 { 00042 public: 00043 ImportOPJ(ApplicationWindow *app, const QString& filename); 00044 00045 bool createProjectTree(const OriginFile& opj); 00046 bool importTables(const OriginFile& opj); 00047 bool importGraphs(const OriginFile& opj); 00048 bool importNotes(const OriginFile& opj); 00049 bool importGraph3D(const OriginFile& opj, unsigned int graph, unsigned int layer); 00050 int error(){return parse_error;}; 00051 00052 private: 00053 QwtSymbol::Style originToQwtSymbolStyle(unsigned char type); 00054 QwtLinearColorMap qwtColorMap(const Origin::ColorMap& colorMap); 00055 int arrowAngle(double length, double width){return ceil(45*atan(0.5*width/length)/atan(1.0));}; 00056 QString parseOriginText(const QString &str); 00057 QString parseOriginTags(const QString &str); 00058 void addText(const Origin::TextBox& text, Graph* graph, double fFontScaleFactor, double fScale); 00059 void setPieTexts(QwtPieCurve *p, Graph* graph, const Origin::GraphLayer& layer, double fFontScaleFactor, double fScale); 00060 int parse_error; 00061 int xoffset; 00062 int frameWidth; 00063 int frameHeight; 00064 ApplicationWindow *mw; 00065 00066 static QMap<Origin::GraphCurve::LineStyle, Qt::PenStyle> lineStyles; 00067 static QMap<Origin::GraphCurve::LineStyle, Qwt3D::LINESTYLE> line3DStyles; 00068 static QMap<Origin::GraphAxis::Scale, ScaleTransformation::Type>scaleTypes; 00069 static QMap<Origin::FillPattern, int> patternStyles; 00070 static QMap<Origin::ProjectNode::NodeType, QString> classes; 00071 }; 00072 00073 #endif //IMPORTOPJ_H