- Main Page
- Related Pages
- Namespaces
- Classes
- Files

# valuenode_random.h

Go to the documentation of this file.

    00001 /* === S Y N F I G ========================================================= */
    00022 /* ========================================================================= */
    00023
    00024 /* === S T A R T =========================================================== */
    00025
    00026 #ifndef __SYNFIG_VALUENODE_INTERPOLATION_RANDOM_H
    00027 #define __SYNFIG_VALUENODE_INTERPOLATION_RANDOM_H
    00028
    00029 /* === H E A D E R S ======================================================= */
    00030
    00031 #include "synfig/valuenode.h"
    00032 #include "random_noise.h"
    00033
    00034 /* === M A C R O S ========================================================= */
    00035
    00036 /* === C L A S S E S & S T R U C T S ======================================= */
    00037
    00038 namespace synfig {
    00039
    00040 class ValueNode_Random : public LinkableValueNode
    00041 {
    00042     ValueNode::RHandle link_;
    00043     ValueNode::RHandle radius_;
    00044     ValueNode::RHandle seed_;
    00045     ValueNode::RHandle speed_;
    00046     ValueNode::RHandle smooth_;
    00047     ValueNode::RHandle loop_;
    00048
    00049     mutable RandomNoise random;
    00050     RandomNoise::SmoothType smooth;
    00051     ValueNode_Random(const ValueBase &value);
    00052
    00053 public:
    00054
    00055     typedef etl::handle<ValueNode_Random> Handle;
    00056     typedef etl::handle<const ValueNode_Random> ConstHandle;
    00057
    00058     virtual ValueBase operator()(Time t)const;
    00059
    00060     virtual ~ValueNode_Random();
    00061
    00062     virtual String get_name()const;
    00063     virtual String get_local_name()const;
    00064
    00065     virtual ValueNode::LooseHandle get_link_vfunc(int i)const;
    00066     virtual int link_count()const;
    00067     virtual String link_name(int i)const;
    00068
    00069     virtual String link_local_name(int i)const;
    00070     virtual int get_link_index_from_name(const String &name)const;
    00071
    00072     virtual ValueNode* clone(const GUID& deriv_guid=GUID())const;
    00073
    00074     void randomize_seed();
    00075
    00076 protected:
    00077     LinkableValueNode* create_new()const;
    00078     virtual bool set_link_vfunc(int i,ValueNode::Handle x);
    00079
    00080 public:
    00081     using synfig::LinkableValueNode::get_link_vfunc;
    00082     using synfig::LinkableValueNode::set_link_vfunc;
    00083     static bool check_type(ValueBase::Type type);
    00084     static ValueNode_Random* create(const ValueBase &x);
    00085 }; // END of class ValueNode_Random
    00086
    00087 }; // END of namespace synfig
    00088
    00089 /* === E N D =============================================================== */
    00090
    00091 #endif