principal
nivel superior
enviar artículo
buscar
administrar
acerca de ...
rdf
rss
main
|
Posted by angolero on Wednesday December 03, @11:58PM el 2008
from the dept.
Hola a todos
Ok
amigos, pues ya corrí unos ejemplos con elementos de imágenes
tridimensionales
con coin3d desde otro thread generado por boost y todo bien, y como
dije ando
viendo como separar la parte windowsera, lo cual se ve bien retorcido,
ya que
como recordaran un ingeniero cristiano gringo desde la lista de correos
coin3d
me paso las clases con los cuales lograr que los botones fuesen
responsivos en
la vista, el a su ves llamaba a la libreira desde mathlab así que ya se
imaginaran, ahora bien una manera factible podría ser poner los
controles desde
el teclado (play, stop, etc. al oprimir teclas), o simplemente en otra
ventana
hecha con coin3d a su ves, pero que no tuviera un rendereo severo como
la vista,
es decir un controlador.
Ya
que por
ahora leyendo con detenimiento el código, me parece que la cosa no esta
fusionada
con los threads Windows sin con las ventanas Windows, es decir cuando
se crea
una ventana coin3d gracias a los elementos del sistema Windows, en este
caso SoWin,
la ventana creada pasa todos sus eventos al manejador de eventos
Windows;
Pasa
lo
mismo con los botones de la vista creados con soWin, estos pasan todos
sus
eventos al manejador de eventos Windows, ya que son objetos Windows que
extienden de objetos gráficos en Windows con muchas propiedades en
común con
las ventanas.
Entonces
en
las clases del ingeniero se llama al manejador de eventos Windows, se
le
pregunta cuales han sido todos los eventos registrados, los que se
reconocen,
pues uno les dice que hacer en cada caso, como por ejemplo con play, y
los demás
se le regresan para que Windows se encargue.
Así
que
para tener una vista chida multiplataforma tengo que pensar en una
manera de
poner esa parte del código aislada al máximo, de tal manera que cuando
se usen
los respectivos eventos en Windows, Xwindows y Mac, no se tenga
problemas o
como dije con anterioridad manejando el teclado.
Luego
les
hago saber que se me ha ocurrido, saludos y suerte a todos.
<
Reporte 28.11-5.12
|
Robot High School
>
|
|
The Fine Print: The following comments
are owned by whoever posted them.
( Reply )
|
Re: angolero
by jergas on Monday December 08, @11:24AM
|
hola!
una idea que pense hace mucho es la siguiente:
- integrar el controlador al modelo como un componente del mismo
- crear unos agentes fantasmales que sirvan de botones (necesitarias igual ver como manejar clicks de raton, pero no tendrias que liarte con windowing toolkits ni nada asi)
- entiendo que no te resuelve, porque implica mantener a la vista responsiva, pero podria ser mas limpio que mantener a varios botones responsivos.
- trae algunos problemas como: al pausar o hechar a andar la simulacion, el tiempo tendria que seguir corriendo para que los agentes que conforman el controlador se mantuvieran prendidos
- pero tambien tiene unas posibilidades fascinantes, porque despues para hacer el gui mas responsivo basta agregar funcionalidad de control a otros agentes.
- tambien da la posibilidad de que el controlador este ad hoc al estado de la simulacion de una manera mucho mas natural.
dime que piensas.
entiendo que es un poco tangencial a tu reporte, pero creo que es el momento correcto para mencionarlo. tambien entiendo que modifica nuestro patron de disenyo, pero este no esta escrito en piedra, y creo que las modificaciones no son tan fuertes como parece de primera instancia si se hace con cuidado. (ejemplo: mantener un componente controlador que siga cumpliendo con una version ligeramente modificada del patron, mismo al que le hablan los agentes, y agregar un componente que reciba el input del usuario y lo pase a los agentes como datos de la simulacion.)
Un Abrazo,
Jergas
|
[
Reply to this ] |
Re: angolero
by alohaaa on Tuesday December 09, @06:56PM
|
Mira el problema es que es necesario un loop infinito que este checando los eventos detectados en la vista, en general esto ocurre en otro thread, para no bloquear la vista, o para evitar tener que poner que se chequen los eventos a cada línea de código.
En este caso se llama al loop infinito de Windows, que ciertamente esta en otro thread, para poder revisar los eventos registrados.
Por otro lado en el modelo de evolución la clase tiene 1369 líneas de código, aunque recordemos que es un código sin agentes, pero igual no me parece que sea la honda poner mas cosas allí, como por ejemplo el controlador, la manera natural de hacer las clases en la orientación a objetos es separar la información de ser posible, y en este caso poner agentes como botones solo mezcla mas las cosas, a final de cuentas los botones son para acceder al programa, pero no son necesarios para hacer una simulación mas grande, al igual que no es necesaria la vista.
Salud y suerte por allí.
|
[
Reply to this ]
|
|
The Fine Print: The following
comments are owned by whoever posted them.
( Reply )
|
|