itom 1.0.14
|
00001 /* ******************************************************************** 00002 itom software 00003 URL: http://www.uni-stuttgart.de/ito 00004 Copyright (C) 2013, Institut für Technische Optik (ITO), 00005 Universität Stuttgart, Germany 00006 00007 This file is part of itom and its software development toolkit (SDK). 00008 00009 itom is free software; you can redistribute it and/or modify it 00010 under the terms of the GNU Library General Public Licence as published by 00011 the Free Software Foundation; either version 2 of the Licence, or (at 00012 your option) any later version. 00013 00014 In addition, as a special exception, the Institut für Technische 00015 Optik (ITO) gives you certain additional rights. 00016 These rights are described in the ITO LGPL Exception version 1.0, 00017 which can be found in the file LGPL_EXCEPTION.txt in this package. 00018 00019 itom is distributed in the hope that it will be useful, but 00020 WITHOUT ANY WARRANTY; without even the implied warranty of 00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 00022 General Public Licence for more details. 00023 00024 You should have received a copy of the GNU Library General Public License 00025 along with itom. If not, see <http://www.gnu.org/licenses/>. 00026 *********************************************************************** */ 00027 00028 #ifndef SHAREDSTRUCTURESGRAPHICS_H 00029 #define SHAREDSTRUCTURESGRAPHICS_H 00030 00031 #include "typeDefs.h" 00032 00033 #include <qstring.h> 00034 #include <qcolor.h> 00035 #include <qpair.h> 00036 #include <qvector.h> 00037 00038 00039 namespace ito 00040 { 00041 enum PlotDataType 00042 { 00043 DataObjLine = 0x0001, 00044 DataObjPlane = 0x0002, 00045 DataObjPlaneStack = 0x0004, 00046 PointCloud = 0x0008, 00047 PolygonMesh = 0x0010 00048 }; 00049 Q_DECLARE_FLAGS(PlotDataTypes, PlotDataType) 00050 00051 enum PlotDataFormat 00052 { 00053 Format_Gray8 = 0x0001, 00054 Format_Gray16 = 0x0002, 00055 Format_Gray32 = 0x0004, 00056 Format_RGB32 = 0x0008, 00057 Format_ARGB32 = 0x0010, 00058 Format_CMYK32 = 0x0020, 00059 Format_Float32 = 0x0040, 00060 Format_Float64 = 0x0080, 00061 Format_Complex = 0x0100 00062 }; 00063 Q_DECLARE_FLAGS(PlotDataFormats, PlotDataFormat) 00064 00065 00066 enum PlotFeature 00067 { 00068 Static = 0x0001, 00069 Live = 0x0002, 00070 Cartesian = 0x0004, 00071 Polar = 0x0008, 00072 Cylindrical = 0x0010, 00073 OpenGl = 0x0020, 00074 Cuda = 0x0040, 00075 X3D = 0x0080, 00076 PlotLine = 0x0100, 00077 PlotImage = 0x0200, 00078 PlotISO = 0x0400, 00079 Plot3D = 0x0800 00080 }; 00081 Q_DECLARE_FLAGS(PlotFeatures, PlotFeature) 00082 00083 00084 class PluginInfo 00085 { 00086 public: 00087 PluginInfo(void) : m_plotFeatures(Static) {} 00088 PluginInfo(PlotDataTypes plotDataTypes, PlotDataFormats plotDataFormats, PlotFeatures plotFeatures) : m_plotDataTypes(plotDataTypes), m_plotDataFormats(plotDataFormats), m_plotFeatures(plotFeatures) {} 00089 00090 PlotDataTypes m_plotDataTypes; 00091 PlotDataFormats m_plotDataFormats; 00092 PlotFeatures m_plotFeatures; 00093 }; 00094 00095 00096 enum tPalette 00097 { 00098 tPaletteNoType = 0x00, 00099 tPaletteGray = 0x01, 00100 tPaletteRGB = 0x02, 00101 tPaletteFC = 0x04, 00102 tPaletteIndexed = 0x08, 00103 tPaletteLinear = 0x10, 00104 tPaletteReadOnly = 0x20, 00105 }; 00106 00107 struct ItomPalette 00108 { 00109 int type; 00110 QString name; 00111 QVector<QPair<double, QColor> > colorStops; 00112 QVector<ito::uint32> colorVector256; 00113 QColor inverseColorOne; 00114 QColor inverseColorTwo; 00115 }; 00116 00117 } 00118 00119 Q_DECLARE_OPERATORS_FOR_FLAGS ( ito::PlotDataTypes ) 00120 Q_DECLARE_OPERATORS_FOR_FLAGS ( ito::PlotFeatures ) 00121 Q_DECLARE_OPERATORS_FOR_FLAGS ( ito::PlotDataFormats ) 00122 00123 00124 #endif //SHAREDSTRUCTURESGRAPHICS_H