diff options
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 |
