1 /*
2 * custom_periodic.h
3 * DIN Is Noise is copyright (c) 2006-2021 Jagannathan Sampath
4 * DIN Is Noise is released under GNU Public License 2.0
5 * For more information, please visit https://dinisnoise.org/
6 */
7 
8 #ifndef __CUSTOM_PERIODIC
9 #define __CUSTOM_PERIODIC
10 
11 #include "multi_curve.h"
12 #include "solver.h"
13 #include "curve_listener.h"
14 #include "funktion.h"
15 
16 #include <string>
17 
18 extern const float TWO_PI;
19 
20 // periodic function defined by a bezier curve
21 struct custom_periodic : funktion {
22   std::string fname;
23   multi_curve crv;
24   solver sol;
25   float div;
26   custom_periodic (const std::string& fname, float _div = TWO_PI);
27   ~custom_periodic ();
28   float operator() (float a, float ea);
29 };
30 
31 #endif
32 
33 
34 
35