Salome HOME
Updated copyright comment
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / SalomePyQt_Plot2d.sip
1 // Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 // File   : SalomePyQt.sip
23 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
24 //
25
26 %If (ENABLE_PLOT2D)
27
28 %ExportedHeaderCode
29 #include <Plot2d_Curve.h>
30 %End
31
32 enum Axis {
33   yLeft,
34   yRight,
35   xBottom,
36   xTop,         
37 };      
38
39 enum ObjectType
40 {
41   MainTitle,
42   XTitle,
43   YTitle,
44   Y2Title,
45   XAxis,
46   YAxis,
47   Y2Axis
48 };
49
50 class Plot2d_Curve
51 {
52 %TypeHeaderCode
53 #include <Plot2d_Curve.h>
54 %End
55
56 %ConvertToSubClassCode
57     if ( dynamic_cast<Plot2d_Curve*>( sipCpp ) )
58       sipType = sipType_Plot2d_Curve;
59     else
60       sipType = NULL;
61 %End
62
63 public:
64   Plot2d_Curve();
65   virtual ~Plot2d_Curve();
66   void setName( const QString& );
67   void addPoint( double, double );
68   void addPoints(SIP_PYLIST X, SIP_PYLIST Y);
69 %MethodCode
70   int nx = PyList_Size(a0);
71   int ny = PyList_Size(a1);
72   
73   if( nx != ny ) { 
74     PyErr_Format(PyExc_TypeError,"The dimension of x and y should be the same. It is %d and %d currently.", nx, ny);
75   }
76   
77   int i;
78   PyObject *pX, *pY;
79
80   for (i=0; i<nx; i++) {
81     pX = PyList_GET_ITEM(a0,i);
82     pY = PyList_GET_ITEM(a1,i);
83     double aX = PyFloat_AsDouble(pX);
84     double aY = PyFloat_AsDouble(pY);
85     sipCpp->addPoint(aX, aY);
86   }
87 %End
88   void insertPoint( int, double, double );
89   void deletePoint( int );
90   void clearAllPoints();
91   void setXAxis( Axis );
92 %MethodCode
93   int ax = int(a0);
94   sipCpp->setXAxis(QwtPlot::Axis(ax));
95 %End
96   Axis getXAxis() const;
97 %MethodCode
98   sipRes = Axis(sipCpp->getXAxis());
99 %End
100   void setYAxis( Axis );
101 %MethodCode
102   int ay = int(a0);
103   sipCpp->setYAxis(QwtPlot::Axis(ay));
104 %End
105   Axis getYAxis() const;
106 %MethodCode
107   sipRes = Axis(sipCpp->getYAxis());
108 %End
109 };
110
111 %End