From 404bfef9e23dfc3166cb2005367e7e8a41863914 Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Thu, 23 Dec 2004 10:07:17 +0000 Subject: base class macros svn path=/trunk/externals/tb/; revision=2426 --- chaos/src/circle_map.hpp | 73 +++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 54 deletions(-) (limited to 'chaos/src/circle_map.hpp') diff --git a/chaos/src/circle_map.hpp b/chaos/src/circle_map.hpp index f1ef406..02817de 100644 --- a/chaos/src/circle_map.hpp +++ b/chaos/src/circle_map.hpp @@ -29,11 +29,12 @@ class circle_map: { public: circle_map() - : m_omega(0.4), m_r(1) { m_num_eq = 1; m_data = new data_t[1]; - set_x(0.5); + CHAOS_SYS_INIT(omega, 0.4); + CHAOS_SYS_INIT(r, 1); + CHAOS_SYS_INIT(x, 0.5); } ~circle_map() @@ -44,63 +45,27 @@ public: virtual void m_step() { data_t x = m_data[0]; - data_t omega = m_omega; - data_t r = m_r; + data_t omega = CHAOS_PARAMETER(omega); + data_t r = CHAOS_PARAMETER(r); m_data[0] = x + omega - r / (2.f * M_PI) * sin (2.f * M_PI * x); } - void set_x(t_float f) - { - m_data[0] = (data_t) f; - } - - t_float get_x() - { - return (t_float)m_data[0]; - } - - void set_r(t_float f) - { - m_r = (data_t) f; - } - - - t_float get_r() - { - return (t_float)m_r; - } - - - void set_omega (t_float f) - { - m_omega = (data_t) f; - } - - t_float get_omega() - { - return (t_float)m_omega; - } - - -private: - data_t m_omega; - data_t m_r; + CHAOS_SYSVAR_FUNCS(x,0); + CHAOS_SYSPAR_FUNCS(r); + CHAOS_SYSPAR_FUNCS(omega); }; -#define CIRCLE_MAP_CALLBACKS \ -MAP_CALLBACKS; \ -FLEXT_ATTRVAR_F(m_system->m_omega); \ -FLEXT_ATTRVAR_F(m_system->m_r); \ -FLEXT_CALLVAR_F(m_system->get_omega, m_system->set_omega); \ -FLEXT_CALLVAR_F(m_system->get_r, m_system->set_r); \ -FLEXT_CALLVAR_F(m_system->get_x, m_system->set_x); +#define CIRCLE_MAP_CALLBACKS \ +MAP_CALLBACKS; \ +CHAOS_SYS_CALLBACKS(omega); \ +CHAOS_SYS_CALLBACKS(r); \ +CHAOS_SYS_CALLBACKS(x); + -#define CIRCLE_MAP_ATTRIBUTES \ -MAP_ATTRIBUTES; \ -FLEXT_ADDATTR_VAR1("omega",m_system->m_omega); \ -FLEXT_ADDATTR_VAR1("r",m_system->m_r); \ -FLEXT_ADDATTR_VAR("omega",m_system->get_omega, m_system->set_omega); \ -FLEXT_ADDATTR_VAR("r",m_system->get_r, m_system->set_r); \ -FLEXT_ADDATTR_VAR("x",m_system->get_x, m_system->set_x); +#define CIRCLE_MAP_ATTRIBUTES \ +MAP_ATTRIBUTES; \ +CHAOS_SYS_ATTRIBUTE(omega); \ +CHAOS_SYS_ATTRIBUTE(r); \ +CHAOS_SYS_ATTRIBUTE(x); -- cgit v1.2.1