1 #ifndef MODELS_H
2 #define MODELS_H
3 
4 #include <Wt/WAbstractTableModel.h>
5 
6 class SombreroData : public Wt::WAbstractTableModel {
7 public:
8   SombreroData(int nbXPts, int nbYPts,
9 	       double xStart, double xEnd,
10 	       double yStart, double yEnd);
11 
12   virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
13   virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
14 
15   Wt::cpp17::any data(int row, int column, Wt::ItemDataRole role = Wt::ItemDataRole::Display, const Wt::WModelIndex &parent = Wt::WModelIndex()) const;
16 
17   virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
18                           Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
19 
20   virtual Wt::cpp17::any headerData(int section,
21                                 Wt::Orientation orientation = Wt::Orientation::Horizontal,
22                                 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
23 
update(double xStart,double xEnd,double yStart,double yEnd,int nbXPts,int nbYPts)24   void update(double xStart, double xEnd, double yStart, double yEnd,
25 	      int nbXPts, int nbYPts) {
26     nbXPts_ = nbXPts;
27     nbYPts_ = nbYPts;
28     xStart_ = xStart;
29     xEnd_ = xEnd;
30     yStart_ = yStart;
31     yEnd_ = yEnd;
32   }
33 
34 private:
35   int nbXPts_, nbYPts_;
36   double xStart_, xEnd_, yStart_, yEnd_;
37 };
38 
39 class PlaneData : public Wt::WAbstractTableModel {
40 public:
41   PlaneData(int nbXPts, int nbYPts,
42 	    double xStart, double xDelta,
43 	    double yStart, double yDelta,
44 	    bool Yvariation,
45 	    double colorRoleBound, double sizeRoleBound);
46 
47   virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
48   virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
49 
50   Wt::cpp17::any data(int row, int column, Wt::ItemDataRole role = Wt::ItemDataRole::Display,
51                   const Wt::WModelIndex &parent = Wt::WModelIndex()) const;
52 
53   virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
54                           Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
55 
56   virtual Wt::cpp17::any headerData(int section,
57                                 Wt::Orientation orientation = Wt::Orientation::Horizontal,
58                                 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
59 
update(double xStart,double xDelta,double yStart,double yDelta,int nbXPts,int nbYPts)60   void update(double xStart, double xDelta, double yStart, double yDelta,
61 	      int nbXPts, int nbYPts) {
62     nbXPts_ = nbXPts;
63     nbYPts_ = nbYPts;
64     xStart_ = xStart;
65     xDelta_ = xDelta;
66     yStart_ = yStart;
67     yDelta_ = yDelta;
68   }
69 
70 private:
71   int nbXPts_, nbYPts_;
72   double xStart_, xDelta_, yStart_, yDelta_;
73   bool yVar_;
74 
75   double colorRoleBound_, sizeRoleBound_;
76 };
77 
78 class PointsData : public Wt::WAbstractTableModel {
79 public:
80   PointsData(int nbPts);
81 
82   virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
83   virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
84 
85   Wt::cpp17::any data(int row, int column, Wt::ItemDataRole role = Wt::ItemDataRole::Display,
86                   const Wt::WModelIndex &parent = Wt::WModelIndex()) const ;
87 
88   virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
89                           Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
90 
91   virtual Wt::cpp17::any headerData(int section,
92                                 Wt::Orientation orientation = Wt::Orientation::Horizontal,
93                                 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
94 
95 private:
96   int nbPts_;
97 };
98 
99 class Parabola : public Wt::WAbstractTableModel {
100 public:
101   Parabola(double xMin, double deltaX, double yMin, double deltaY,
102 	   double factor, double minimum,
103 	   bool withColorRoles, double colorRoleBoundary);
104 
105   virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
106   virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const override;
107 
108   Wt::cpp17::any data(int row, int column, Wt::ItemDataRole role = Wt::ItemDataRole::Display,
109                   const Wt::WModelIndex &parent = Wt::WModelIndex()) const ;
110 
111   virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
112                           Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
113 
114   virtual Wt::cpp17::any headerData(int section,
115                                 Wt::Orientation orientation = Wt::Orientation::Horizontal,
116                                 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const override;
117 
118 private:
119   double xMin_, deltaX_;
120   double yMin_, deltaY_;
121 
122   double factor_;
123   double minimum_;
124 
125   bool colorRoles_;
126   double colorRoleBoundary_;
127 };
128 
129 #endif
130