00001 /* === S Y N F I G ========================================================= */ 00021 /* ========================================================================= */ 00022 00023 /* === S T A R T =========================================================== */ 00024 00025 #ifndef __SYNFIG_VALUENODE_BLINE_H 00026 #define __SYNFIG_VALUENODE_BLINE_H 00027 00028 /* === H E A D E R S ======================================================= */ 00029 00030 #include <vector> 00031 #include <list> 00032 00033 #include "valuenode.h" 00034 #include "time.h" 00035 #include "uniqueid.h" 00036 #include "blinepoint.h" 00037 #include "valuenode_dynamiclist.h" 00038 00039 /* === M A C R O S ========================================================= */ 00040 00041 /* === C L A S S E S & S T R U C T S ======================================= */ 00042 00043 namespace synfig { 00044 00045 00047 ValueBase convert_bline_to_segment_list(const ValueBase &bline); 00048 00050 ValueBase convert_bline_to_width_list(const ValueBase &bline); 00051 00055 class ValueNode_BLine : public ValueNode_DynamicList 00056 { 00057 public: 00058 00059 typedef etl::handle<ValueNode_BLine> Handle; 00060 typedef etl::handle<const ValueNode_BLine> ConstHandle; 00061 00062 00063 ValueNode_BLine(); 00064 00065 public: 00066 00067 00068 00069 virtual ValueBase operator()(Time t)const; 00070 00071 virtual ~ValueNode_BLine(); 00072 00073 virtual String link_local_name(int i)const; 00074 00075 virtual String get_name()const; 00076 virtual String get_local_name()const; 00077 00078 virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; 00079 00080 virtual ListEntry create_list_entry(int index, Time time=0, Real origin=0.5); 00081 00082 protected: 00083 00084 LinkableValueNode* create_new()const; 00085 00086 public: 00087 //using synfig::LinkableValueNode::set_link_vfunc; 00088 static bool check_type(ValueBase::Type type); 00089 static ValueNode_BLine* create(const ValueBase &x=ValueBase::TYPE_LIST); 00090 }; // END of class ValueNode_BLine 00091 00092 typedef ValueNode_BLine::ListEntry::ActivepointList ActivepointList; 00093 00094 }; // END of namespace synfig 00095 00096 /* === E N D =============================================================== */ 00097 00098 #endif