synfig-studio  1.0.3
wplistconverter.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
23 /* ========================================================================= */
24 
25 /* === S T A R T =========================================================== */
26 
27 #ifndef __SYNFIG_WPLISTCONVERTER_H
28 #define __SYNFIG_WPLISTCONVERTER_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include <synfig/general.h>
33 #include <synfig/widthpoint.h>
34 #include <list>
35 #include <vector>
36 
37 /* === M A C R O S ========================================================= */
38 
39 /* === T Y P E D E F S ===================================================== */
40 
41 /* === C L A S S E S & S T R U C T S ======================================= */
42 
43 namespace synfigapp {
44 
46 {
47 private:
49  std::vector<synfig::Point> points;
51  std::vector<synfig::Real> widths;
53  std::vector<synfig::WidthPoint> work_out;
55  std::vector<synfig::Real> distances;
57  std::vector<synfig::Real> norm_distances;
59  std::vector<synfig::Real> ek;
61  std::vector<synfig::Real> ek2;
63  unsigned int n;
65  synfig::Real se;
66 
70  unsigned int calculate_ek2(unsigned int k1, unsigned int k2, bool first_time=false);
72  unsigned int find_next(unsigned int k);
73  unsigned int find_prev(unsigned int k);
74 
75  void clear();
76 
77 public:
78  synfig::Real err2max;
80  static void EnforceMinWidth(std::list<synfig::WidthPoint> &wplist, synfig::Real min_pressure);
81  void operator()(std::list<synfig::WidthPoint> &wp_out, const std::list<synfig::Point> &p, const std::list<synfig::Real> &w);
82 };
83 
84 }; // END of namespace synfigapp
85 
86 /* === E N D =============================================================== */
87 
88 #endif