synfig-core  1.0.3
valuenode_wplist.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_VALUENODE_WPLIST_H
28 #define __SYNFIG_VALUENODE_WPLIST_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include <vector>
33 #include <list>
34 
35 #include <synfig/valuenode.h>
36 #include <synfig/time.h>
37 #include <synfig/uniqueid.h>
38 #include <synfig/widthpoint.h>
39 #include "valuenode_dynamiclist.h"
40 
41 /* === M A C R O S ========================================================= */
42 
43 /* === C L A S S E S & S T R U C T S ======================================= */
44 
45 namespace synfig {
47 synfig::ValueBase convert_bline_to_wplist(const ValueBase& bline);
54 synfig::Real widthpoint_interpolate(const WidthPoint& prev, const WidthPoint& next, const Real position, const Real smoothness=0.0);
55 
64 {
65 private:
66  ValueNode::RHandle bline_;
67 
68 public:
69 
70  typedef etl::handle<ValueNode_WPList> Handle;
71  typedef etl::handle<const ValueNode_WPList> ConstHandle;
72  typedef etl::handle<const ValueNode_WPList> LooseHandle;
74 
75 public:
76 
77  virtual ValueBase operator()(Time t)const;
78  virtual ~ValueNode_WPList();
79  virtual String link_local_name(int i)const;
80  virtual String get_name()const;
81  virtual String get_local_name()const;
89  virtual ListEntry create_list_entry(int index, Time time=0, Real origin=0.5);
104  Real interpolated_width(Real position, Time time)const;
109 
110 protected:
111 
113 
114 public:
115 
116  static bool check_type(Type &type);
117  // Creates a Value Node Width Point List from another compatible list
118  static ValueNode_WPList* create(const ValueBase &x=type_list);
119 }; // END of class ValueNode_WPList
120 
122 
123 }; // END of namespace synfig
124 
125 /* === E N D =============================================================== */
126 
127 #endif