diff options
| author | Comment <tim@gray.(none)> | 2013-12-08 10:55:03 +0000 |
|---|---|---|
| committer | Comment <tim@gray.(none)> | 2013-12-08 10:55:03 +0000 |
| commit | 1d05d2380bb4f1fd265aef55744f432af38b08aa (patch) | |
| tree | 89c1c15497149951d4b99938ad932abde42eae14 /rotord/src/nodes_maths.h | |
| parent | e04516069c71a5a1e32e6a5fbf0eb5b86dcfc5a2 (diff) | |
switched signals to double and random to uint16
Diffstat (limited to 'rotord/src/nodes_maths.h')
| -rw-r--r-- | rotord/src/nodes_maths.h | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/rotord/src/nodes_maths.h b/rotord/src/nodes_maths.h index 2bf8b48..0f92f0a 100644 --- a/rotord/src/nodes_maths.h +++ b/rotord/src/nodes_maths.h @@ -20,7 +20,7 @@ namespace Rotor { public: Comparison(){ create_signal_input("signal","Signal"); - create_parameter("value","number","Value or signal for operation","Value",0.0f); + create_parameter("value","number","Value or signal for operation","Value",0.0); create_attribute("operator","Operator for comparison","operator","==",{"==","!=",">","<",">=","<="}); title="Comparison"; description="Compares the signal with a value or signal according to the operator"; @@ -30,31 +30,31 @@ namespace Rotor { base_settings(settings); } Comparison* clone(map<string,string> &_settings) { return new Comparison(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { if (inputs[0]->connection) { switch (attributes["operator"]->intVal) { case COMPARISON_Equal: - return fequal(parameters["value"]->value,inputs[0]->get(time))?1.0f:0.0f; + return fequal(parameters["value"]->value,inputs[0]->get(time))?1.0:0.0; break; case COMPARISON_Not_equal: - return fequal(parameters["value"]->value,inputs[0]->get(time))?0.0f:1.0f; + return fequal(parameters["value"]->value,inputs[0]->get(time))?0.0:1.0; break; case COMPARISON_Greater: - return fgreater(parameters["value"]->value,inputs[0]->get(time))?1.0f:0.0f; + return fgreater(parameters["value"]->value,inputs[0]->get(time))?1.0:0.0; break; case COMPARISON_Less: - return fless(parameters["value"]->value,inputs[0]->get(time))?1.0f:0.0f; + return fless(parameters["value"]->value,inputs[0]->get(time))?1.0:0.0; break; case COMPARISON_Greater_or_equal: - return fgreater_or_equal(parameters["value"]->value,inputs[0]->get(time))?1.0f:0.0f; + return fgreater_or_equal(parameters["value"]->value,inputs[0]->get(time))?1.0:0.0; break; case COMPARISON_Less_or_equal: - return fless_or_equal(parameters["value"]->value,inputs[0]->get(time))?1.0f:0.0f; + return fless_or_equal(parameters["value"]->value,inputs[0]->get(time))?1.0:0.0; break; } } - return 0.0f; + return 0.0; } }; #define ARITHMETIC_plus 1 @@ -74,27 +74,27 @@ namespace Rotor { public: Arithmetic(){ create_signal_input("signal","Signal"); - create_parameter("value","number","Value or signal for operation","Value",1.0f); + create_parameter("value","number","Value or signal for operation","Value",1.0); create_attribute("operator","operator for image","Operator","+",{"+","-","*","/","%","^","sin","cos","ease","jolt","floor","2pow","reciprocal"}); title="Arithmetic"; description="Performs arithmetic on a signal with a signal or value"; - NODEID="f35e5f82-2d0a-11e3-83d8-0fed336db813"; + NODEID="f35e5f82-2d0a-11e3-83d8.0ed336db813"; }; Arithmetic(map<string,string> &settings):Arithmetic() { base_settings(settings); }; Arithmetic* clone(map<string,string> &_settings) { return new Arithmetic(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { //if (attributes["operator"]->intVal==ARITHMETIC_divide||attributes["operator"]->intVal==ARITHMETIC_modulo){ - // if (value==0.0f) { + // if (value==0.0) { // Poco::Logger& logger = Poco::Logger::get("Rotor"); // logger.error("Arithmetic node: caught division by zero, frame "+time.frame()); - // return 0.0f; + // return 0.0; // } //} if (inputs.size()) { //there should there be a way to specify number of inputs in the code rather than in xml if (inputs[0]->connection) { - float in= inputs[0]->get(time); + double in= inputs[0]->get(time); int inint; //this old chestnut switch (attributes["operator"]->intVal) { case ARITHMETIC_plus: @@ -124,10 +124,10 @@ namespace Rotor { return cos(in)*parameters["value"]->value; break; case ARITHMETIC_ease: - return ((1.0-parameters["value"]->value)*in)+(parameters["value"]->value*(0.5f+((cos((fmod(in,1.0f)+1.0f)*M_PI))*0.5f))); + return ((1.0-parameters["value"]->value)*in)+(parameters["value"]->value*(0.5f+((cos((fmod(in,1.0)+1.0)*M_PI))*0.5f))); break; case ARITHMETIC_jolt: - return ((1.0-parameters["value"]->value)*in)+(parameters["value"]->value*(0.5f+((sin((fmod(in,1.0f)+1.0f)*M_PI))*0.5f))); + return ((1.0-parameters["value"]->value)*in)+(parameters["value"]->value*(0.5f+((sin((fmod(in,1.0)+1.0)*M_PI))*0.5f))); break; case ARITHMETIC_floor: return floor(in); @@ -141,10 +141,10 @@ namespace Rotor { } } } - return 0.0f; + return 0.0; } int op; - float value; + double value; }; class Is_new_integer: public Signal_node { public: @@ -158,11 +158,11 @@ namespace Rotor { base_settings(settings); }; Is_new_integer* clone(map<string,string> &_settings) { return new Is_new_integer(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { if (((int)inputs[0]->get(time))>((int)inputs[0]->get(time.lastframe()))) { - return 1.0f; + return 1.0; } - return 0.0f; + return 0.0; } }; class On_off: public Signal_node { @@ -177,12 +177,12 @@ namespace Rotor { base_settings(settings); }; On_off* clone(map<string,string> &_settings) { return new On_off(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { if (inputs[0]->connection) { - float s1=(((Signal_node*)(inputs[0]->connection))->get_output(time)); - if ((int)s1%2) return 1.0f; + double s1=(((Signal_node*)(inputs[0]->connection))->get_output(time)); + if ((int)s1%2) return 1.0; } - return 0.0f; + return 0.0; } }; //pseudo random hash function @@ -230,7 +230,7 @@ namespace Rotor { title="Random"; description="Randomises integer part of signal (seedable)"; create_signal_input("signal","Signal"); - create_parameter("seed","number","Seed value","Seed",1.0f); + create_parameter("seed","number","Seed value","Seed",1.0); NODEID="1de86932-2d0b-11e3-96d3-77aa4558e6cd"; std::uniform_int_distribution<> d(-9999, 9999); }; @@ -238,21 +238,21 @@ namespace Rotor { base_settings(settings); }; Random* clone(map<string,string> &_settings) { return new Random(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { - float o; + double o; if (inputs[0]->connection){ o=inputs[0]->get(time); } else o=time.time; uint32_t m=(int)o; PRNG.seed(m^(int)parameters["seed"]->value); - return ((float)(PRNG()&0xf))+(o-m); + return ((double)(PRNG()&0xffff))+(o-m); //uint32_t seed=Seed+parameters["seed"]->value; //hash the integer part and add the fractional part back on // - //return ((float)(fnv1a(m,seed)))+(o-m); //%((uint32_t)time.duration)) + //return ((double)(fnv1a(m,seed)))+(o-m); //%((uint32_t)time.duration)) } MTRand_int32 PRNG; }; @@ -263,17 +263,17 @@ namespace Rotor { title="Noise"; description="Fractal noise (seedable)"; create_signal_input("signal","Signal"); - create_parameter("seed","number","Seed value","Seed",1.0f); - create_parameter("octaves","number","Octaves of noise","octaves",6.0f); - create_parameter("frequency","number","Frequency of noise","frequency",1.0f); - create_parameter("scale","number","scale of noise","scale",1.0f); + create_parameter("seed","number","Seed value","Seed",1.0); + create_parameter("octaves","number","Octaves of noise","octaves",6.0); + create_parameter("frequency","number","Frequency of noise","frequency",1.0); + create_parameter("scale","number","scale of noise","scale",1.0); NODEID="28b3c154-2d0b-11e3-bdf2-1b9b2678a2f6"; }; Noise(map<string,string> &settings):Noise() { base_settings(settings); }; Noise* clone(map<string,string> &_settings) { return new Noise(_settings);}; - const float output(const Time_spec &time) { + const double output(const Time_spec &time) { perlin.SetOctaveCount(parameters["octaves"]->value); perlin.SetFrequency(parameters["frequency"]->value); perlin.SetSeed(Seed+parameters["seed"]->value); |
