synfig-core  1.0.3
valuenode_random.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_INTERPOLATION_RANDOM_H
28 #define __SYNFIG_VALUENODE_INTERPOLATION_RANDOM_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include "synfig/valuenode.h"
33 #include "random_noise.h"
34 
35 /* === M A C R O S ========================================================= */
36 
37 /* === C L A S S E S & S T R U C T S ======================================= */
38 
39 namespace synfig {
40 
42 {
43  ValueNode::RHandle link_;
44  ValueNode::RHandle radius_;
45  ValueNode::RHandle seed_;
46  ValueNode::RHandle speed_;
47  ValueNode::RHandle smooth_;
48  ValueNode::RHandle loop_;
49 
50  mutable RandomNoise random;
51  //RandomNoise::SmoothType smooth;
52  ValueNode_Random(const ValueBase &value);
53 
54 public:
55 
56  typedef etl::handle<ValueNode_Random> Handle;
57  typedef etl::handle<const ValueNode_Random> ConstHandle;
58 
59  virtual ValueBase operator()(Time t)const;
60 
61  virtual ~ValueNode_Random();
62 
63  virtual String get_name()const;
64  virtual String get_local_name()const;
65 
66  virtual ValueNode::LooseHandle get_link_vfunc(int i)const;
67 
68  virtual ValueNode::Handle clone(etl::loose_handle<Canvas> canvas, const GUID& deriv_guid=GUID())const;
69 
70  void randomize_seed();
71 
72 protected:
74  virtual bool set_link_vfunc(int i,ValueNode::Handle x);
75 
76 public:
79  static bool check_type(Type &type);
80  static ValueNode_Random* create(const ValueBase &x);
81  virtual Vocab get_children_vocab_vfunc()const;
82 }; // END of class ValueNode_Random
83 
84 }; // END of namespace synfig
85 
86 /* === E N D =============================================================== */
87 
88 #endif