summaryrefslogtreecommitdiff
path: root/gui/libs/ofxAChaosLib/src/AChaosBase.h
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2018-07-08 12:22:06 +0100
committerTim Redfern <tim@getdrop.com>2018-07-08 12:22:06 +0100
commitfb68eed64f548d090eb550047fd0d898e4e033fc (patch)
tree890fa917ca6bd88505b45e5c261d05e0c5c9b6ec /gui/libs/ofxAChaosLib/src/AChaosBase.h
parentc10665e02e49da2d8f7e1a1eada151f17f507a21 (diff)
add altered AChaoslib
Diffstat (limited to 'gui/libs/ofxAChaosLib/src/AChaosBase.h')
-rw-r--r--gui/libs/ofxAChaosLib/src/AChaosBase.h69
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> &params){
+ 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