summaryrefslogtreecommitdiff
path: root/src/CurveEditor.H
blob: bebadd03b6aeffb0c4390e5faddf55568f9f1b72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
// Copyright 2008 Johannes Hofmann <Johannes.Hofmann@gmx.de>
//
// This software may be used and distributed according to the terms
// of the GNU General Public License, incorporated herein by reference.

#ifndef CurveEditor_H
#define CurveEditor_H

#include <FL/Fl_Widget.H>
#include <gsl/gsl_spline.h>

class CurveEditor : public Fl_Widget {
	private:
		double *X, *Y;
		int n;
		int marked_point;
		Fl_Callback *cb;
		void *cb_data;
		gsl_interp_accel *acc;
		gsl_spline *spline;

	public:
		CurveEditor(int _x, int _y, int _w, int _h);

		int add_point(double _x, double _y);
		void init();
		void clear();
		void move_point(int i, double _x, double _y);
		int get_n() {return n;};
		void get_point(int i, double *_x, double *_y);
		void remove_point(int i);
		void draw();
		int handle(int e);
		void callback(Fl_Callback *_cb, void *d) {cb = _cb; cb_data = d;};
};

#endif