1 #include "sistemaautonomo.h"
\r
2 #include "slBrevePluginAPI.h"
\r
8 /////////////////////////// CTeoria /////////////////////////
\r
10 // pointer{Teoria} TeoriaNew(string, string, int, int)
\r
11 int SAbrTeoriaNew(brEval args[], brEval* result, void* data)
\r
13 result->set(new CTeoria(
\r
21 // void TeoriaSetDatoInicial(pointer{Teoria}, string, float)
\r
22 int SAbrTeoriaSetDatoInicial(brEval args[], brEval* result, void* data)
\r
24 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
25 t->datos_iniciales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
29 // void TeoriaSetDatoFinal(pointer{Teoria}, string, float)
\r
30 int SAbrTeoriaSetDatoFinal(brEval args[], brEval* result, void* data)
\r
32 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
33 t->datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
37 // string TeoriaGetNombre(pointer{Teoria})
\r
38 int SAbrTeoriaGetNombre(brEval args[], brEval* result, void* data)
\r
40 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
41 result->set(t->nombre.c_str());
\r
45 // string TeoriaGetAccion(pointer{Teoria})
\r
46 int SAbrTeoriaGetAccion(brEval args[], brEval* result, void* data)
\r
48 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
49 result->set(t->funcion.c_str());
\r
53 // void TeoriaDelete(pointer{Teoria})
\r
54 int SAbrTeoriaDelete(brEval args[], brEval* result, void* data)
\r
56 delete (CTeoria*) BRPOINTER(args);
\r
61 /////////////////////////// CSistemaAutonomo /////////////////////////
\r
63 // pointer{SistemaAutonomo} SistemaAutonomoNew()
\r
64 int SAbrSistemaAutonomoNew(brEval args[], brEval* result, void* data)
\r
66 result->set(new CSistemaAutonomo());
\r
70 // void SistemaAutonomoAddTeoria(pointer{SistemaAutonomo}, pointer{Teoria})
\r
71 int SAbrSistemaAutonomoAddTeoria(brEval args[], brEval* result, void* data)
\r
73 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
74 CTeoria* t = (CTeoria*) BRPOINTER(args+1);
\r
75 sa->teorias.add(t->nombre, t);
\r
77 std::cout << "Agrega teoria " << t->nombre << ":\n";
\r
78 std::cout << " .datos_iniciales:\n" << t->datos_iniciales << "\n";
\r
79 std::cout << " .datos_finales:\n" << t->datos_finales << "\n";
\r
84 // void SistemaAutonomoSetValue(pointer{SistemaAutonomo}, string, float)
\r
85 int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data)
\r
87 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
88 sa->p_entorno->datos.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
92 // void SistemaAutonomoSetDatoFinal(pointer{SistemaAutonomo}, string, float)
\r
93 int SAbrSistemaAutonomoSetDatoFinal(brEval args[], brEval* result, void* data)
\r
95 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
96 sa->m_datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
100 // void SistemaAutonomoPlan(pointer{SistemaAutonomo})
\r
101 int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data)
\r
103 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
108 // bool SistemaAutonomoHasNextTheory(pointer{SistemaAutonomo})
\r
109 int SAbrSistemaAutonomoHasNextTheory(brEval args[], brEval* result, void* data)
\r
111 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
112 result->set(sa->has_next_theory());
\r
116 // pointer{Teoria} SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})
\r
117 int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data)
\r
119 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
120 result->set(sa->get_next_theory());
\r
124 // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria})
\r
125 int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data)
\r
127 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
128 result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));
\r
132 // void SistemaAutonomoDelete(pointer{SistemaAutonomo})
\r
133 int SAbrSistemaAutonomoDelete(brEval args[], brEval* result, void* data)
\r
135 delete (CSistemaAutonomo*) BRPOINTER(args);
\r
140 DLLEXPORT void SAbrFunctions(void *data)
\r
142 brNewBreveCall(data, "TeoriaNew", SAbrTeoriaNew,
\r
143 AT_POINTER, AT_STRING, AT_STRING, AT_INT, AT_INT, 0);
\r
144 brNewBreveCall(data, "TeoriaSetDatoInicial", SAbrTeoriaSetDatoInicial,
\r
145 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
146 brNewBreveCall(data, "TeoriaSetDatoFinal", SAbrTeoriaSetDatoFinal,
\r
147 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
148 brNewBreveCall(data, "TeoriaGetNombre", SAbrTeoriaGetNombre,
\r
149 AT_STRING, AT_POINTER, 0);
\r
150 brNewBreveCall(data, "TeoriaGetAccion", SAbrTeoriaGetAccion,
\r
151 AT_STRING, AT_POINTER, 0);
\r
152 brNewBreveCall(data, "TeoriaDelete", SAbrTeoriaDelete,
\r
153 AT_NULL, AT_POINTER, 0);
\r
154 brNewBreveCall(data, "SistemaAutonomoNew", SAbrSistemaAutonomoNew,
\r
156 brNewBreveCall(data, "SistemaAutonomoAddTeoria", SAbrSistemaAutonomoAddTeoria,
\r
157 AT_NULL, AT_POINTER, AT_POINTER, 0);
\r
158 brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue,
\r
159 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
160 brNewBreveCall(data, "SistemaAutonomoSetDatoFinal", SAbrSistemaAutonomoSetDatoFinal,
\r
161 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
162 brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,
\r
163 AT_NULL, AT_POINTER, 0);
\r
164 brNewBreveCall(data, "SistemaAutonomoHasNextTheory", SAbrSistemaAutonomoHasNextTheory,
\r
165 AT_INT, AT_POINTER, 0);
\r
166 brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,
\r
167 AT_POINTER, AT_POINTER, 0);
\r
168 brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,
\r
169 AT_INT, AT_POINTER, AT_POINTER, 0);
\r
170 brNewBreveCall(data, "SistemaAutonomoDelete", SAbrSistemaAutonomoDelete,
\r
171 AT_NULL, AT_POINTER, 0);
\r