1 /*************************************************************************************
2  *  Copyright (C) 2007-2009 by Aleix Pol <aleixpol@kde.org>                          *
3  *  Copyright (C) 2010-2013 by Percy Camilo T. Aucahuasi <percy.camilo.ta@gmail.com> *
4  *                                                                                   *
5  *  This program is free software; you can redistribute it and/or                    *
6  *  modify it under the terms of the GNU General Public License                      *
7  *  as published by the Free Software Foundation; either version 2                   *
8  *  of the License, or (at your option) any later version.                           *
9  *                                                                                   *
10  *  This program is distributed in the hope that it will be useful,                  *
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of                   *
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                    *
13  *  GNU General Public License for more details.                                     *
14  *                                                                                   *
15  *  You should have received a copy of the GNU General Public License                *
16  *  along with this program; if not, write to the Free Software                      *
17  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA   *
18  *************************************************************************************/
19 
20 #ifndef PLOTTINGENUMS_H
21 #define PLOTTINGENUMS_H
22 
23 #include <QFlags>
24 
25 namespace Analitza {
26 
27 enum Dimension
28 {
29     Dim1D = 1,
30     Dim2D = 2,
31     Dim3D = 4,
32     DimAll = Dim1D | Dim2D | Dim3D
33 };
34 
35 Q_DECLARE_FLAGS(Dimensions, Dimension)
36 
37 enum CoordinateSystem
38 {
39     Cartesian = 1,
40     Polar,
41     Cylindrical,
42     Spherical
43 };
44 
45 enum CartesianAxis
46 {
47     XAxis = 1,
48     YAxis,
49     ZAxis,
50     InvalidAxis // used for query/select between some axis
51 };
52 
53 enum PlotStyle
54 {
55     Dots = 1,
56     Wired,
57     Solid
58 };
59 
60 //TODO review the 3d bahaviour
61 enum PlottingFocusPolicy
62 {
63     Current,
64     All
65 };
66 
67 //NOTE this is important in order to keep compatibility with KmPlot
68 enum GridStyle
69 {
70     Squares = 1, // a solid quadrangular (rectangular, if keep aspect radio is off) mesh (in KmPlot is called Lines)
71     Circles, // classic polar grid: solid circles (ellipses, if keep aspect radio is off) around origin (in KmPlot is called Polar)
72     Crosses, // like KmPlot: show only a cross at every node of the quadrangular mesh
73     HorizontalLines, // (or rows) show only horizontal lines of the quadrangular mesh, can be used as horizontal asymptotes
74     VerticalLines, // (or columns) show only vertical lines of the quadrangular mesh, can be used as vertical asymptotes
75 };
76 
77 enum AngleMode
78 {
79     Radian,
80     Degree,
81     Gradian
82 };
83 
84 enum ScaleMode // used for draw ticks marks in plotters
85 {
86     Linear = 1, // -2 -1 0 1 ...
87     Trigonometric, // -pi 0 +pi
88 //     TODO lin-lin, lin-log, log-lin, and log-log.
89 };
90 
91 }
92 
93 #endif
94