aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/chaos_base.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'chaos/src/chaos_base.hpp')
-rw-r--r--chaos/src/chaos_base.hpp103
1 files changed, 12 insertions, 91 deletions
diff --git a/chaos/src/chaos_base.hpp b/chaos/src/chaos_base.hpp
index a42e275..795383e 100644
--- a/chaos/src/chaos_base.hpp
+++ b/chaos/src/chaos_base.hpp
@@ -1,4 +1,4 @@
-a//
+//
//
// chaos~
// Copyright (C) 2004 Tim Blechmann
@@ -21,6 +21,7 @@ a//
#ifndef __chaos_base_hpp
#include "chaos.hpp"
+#include "chaos_defs.hpp"
class chaos_base
{
@@ -36,7 +37,9 @@ public:
return m_num_eq;
}
- virtual void m_step();
+ virtual void m_step()
+ {
+ }
data_t * m_data; // state of the system
@@ -45,98 +48,16 @@ protected:
};
#define CHAOS_CALLBACKS \
-FLEXT_CALLGET_F(m_system->get_num_eq);
-
-#define CHAOS_ATTRIBUTES \
-FLEXT_ADDATTR_GET("dimension",m_system->get_num_eq);
-
-
-
-// macros for simplified system state functions
-#define CHAOS_SYS_SETFUNC(NAME, NR) \
- void set_##NAME(t_float f) \
- { \
- m_data[NR] = (data_t) f; \
- }
-
-#define CHAOS_SYS_SETFUNC_PRED(NAME, NR, PRED) \
- void set_##NAME(t_float f) \
- { \
- if ( PRED(f) ) \
- m_data[NR] = (data_t) f; \
- else \
- post("value for dimension " #NAME " %f out of range", f); \
- }
-
-#define CHAOS_SYS_GETFUNC(NAME, NR) \
- t_float get_##NAME() \
- { \
- return (t_float)m_data[NR]; \
- }
-
-/* to be called in the public part */
-#define CHAOS_SYSVAR_FUNCS_PRED(NAME, NR, PRED) \
-public: \
-CHAOS_SYS_SETFUNC_PRED(NAME, NR, PRED) \
-CHAOS_SYS_GETFUNC(NAME, NR)
-
-#define CHAOS_SYSVAR_FUNCS(NAME, NR) \
-public: \
-CHAOS_SYS_SETFUNC(NAME, NR) \
-CHAOS_SYS_GETFUNC(NAME, NR)
-
-
-
-// macros for simplified system parameter functions
-#define CHAOS_PAR_SETFUNC(NAME) \
- void set_##NAME(t_float f) \
- { \
- m_##NAME = (data_t) f; \
- }
-
-#define CHAOS_PAR_SETFUNC_PRED(NAME, PRED) \
- void set_##NAME(t_float f) \
- { \
- if ( PRED(f) ) \
- m_##NAME = (data_t) f; \
- else \
- post("value for parameter " #NAME " %f out of range", f); \
- }
-
-#define CHAOS_PAR_GETFUNC(NAME) \
- t_float get_##NAME() \
- { \
- return (t_float)m_##NAME; \
- }
-
-
-#define CHAOS_SYSPAR_FUNCS_PRED(NAME, PRED) \
-public: \
-CHAOS_PAR_SETFUNC_PRED(NAME, PRED) \
-CHAOS_PAR_GETFUNC(NAME) \
-private: \
-data_t m_##NAME; \
-public:
-
-#define CHAOS_SYSPAR_FUNCS(NAME) \
public: \
-CHAOS_PAR_SETFUNC(NAME) \
-CHAOS_PAR_GETFUNC(NAME) \
-private: \
-data_t m_##NAME; \
-public:
-
-
-#define CHAOS_SYS_CALLBACKS(NAME) \
-FLEXT_CALLVAR_F(m_system->get_##NAME, m_system->set_##NAME);
-
-#define CHAOS_SYS_ATTRIBUTE(NAME) \
-FLEXT_ADDATTR_VAR(#NAME,m_system->get_##NAME, m_system->set_##NAME);
+void get_dimension(int &i) \
+{ \
+ i = m_system->get_num_eq(); \
+} \
+FLEXT_CALLGET_I(get_dimension);
-#define CHAOS_SYS_INIT(NAME, VALUE) \
-set_##NAME(VALUE);
+#define CHAOS_ATTRIBUTES \
+FLEXT_ADDATTR_GET("dimension",get_dimension);
-#define CHAOS_PARAMETER(NAME) m_##NAME
#define __chaos_base_hpp