diff options
| author | Tim Redfern <tim@getdrop.com> | 2018-07-08 12:22:06 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2018-07-08 12:22:06 +0100 |
| commit | fb68eed64f548d090eb550047fd0d898e4e033fc (patch) | |
| tree | 890fa917ca6bd88505b45e5c261d05e0c5c9b6ec /gui/libs/ofxAChaosLib/src/AChaosBase.h | |
| parent | c10665e02e49da2d8f7e1a1eada151f17f507a21 (diff) | |
add altered AChaoslib
Diffstat (limited to 'gui/libs/ofxAChaosLib/src/AChaosBase.h')
| -rw-r--r-- | gui/libs/ofxAChaosLib/src/AChaosBase.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gui/libs/ofxAChaosLib/src/AChaosBase.h b/gui/libs/ofxAChaosLib/src/AChaosBase.h new file mode 100644 index 0000000..2a8b1d0 --- /dev/null +++ b/gui/libs/ofxAChaosLib/src/AChaosBase.h @@ -0,0 +1,69 @@ +/* + 32/64 bits A-Chaos Lib in openFrameworks + (c) s373.net/x 2004, 2012, 2015 + http://s373.net/code/A-Chaos-Lib/A-Chaos.html + programmed by Andre Sier, revised 2015 + License: MIT +*/ +#pragma once + +// comment for 64bits version (not all objects support) +#define ACHAOS32 + +#ifdef ACHAOS32 +// 32bit + typedef float REAL; + #define SIN sinf + #define COS cosf + +#else +// 64bit + typedef double REAL; + #define SIN sin + #define COS cos + +#endif + + + +class AChaosBase { +public: + AChaosBase(){}; + ~AChaosBase(){} + + vector<REAL> iv; + vector<REAL> ov; + virtual void setup(REAL * params = NULL)=0; + + vector<string> param_labels; + + void init(REAL * params = NULL, int numiv=1, int numov=1){ + iv.clear(); + ov.clear(); + for(int i=0; i<numiv; i++){ + iv.push_back(0.0f); + } + for(int i=0; i<numov; i++){ + ov.push_back(0.0f); + } + cout << "A-Chaos Lib (c) Richard Dudas 1996, (c) Andre Sier 2004, 2012, 2015 " << __DATE__ << " " __TIME__ << endl; + } + virtual void reset(){cout << "reset base" << endl;} + void set(vector<REAL> ¶ms){ + iv.clear(); + for(int i=0; i<params.size();i++){ + iv.push_back( params[i] ); + } + reset(); + } + void set(REAL * params){ + for(int i=0; i<iv.size();i++){ + iv[i] = params[i] ; + } + reset(); + } + REAL * update(){ calc(); return get(); } + virtual void calc(){cout << "calc base" << endl;} + REAL * get(){ return &ov[0];} + vector<REAL> & getVec(){return ov;} +};
\ No newline at end of file |
