itom 1.0.14
D:/git-itom/sources/itom/Common/sharedStructuresGraphics.h
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
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends