Advertisement
Bienvenido a Squishdot Reportes Anuncios Debian Ciencia Linux
 principal
 nivel superior
 enviar artículo
 buscar
 administrar
 acerca de ...
 rdf
 rss
 main


angolero
Reportes 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  >

 

Related Links
  • Articles on Reportes
  • Also by angolero
  • Contact author
  • 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 )

    Powered by Zope  Squishdot Powered
      "Any system that depends on reliability is unreliable." -- Nogg's Postulate
    All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©1999 Butch Landingin.
    [ home | post article | search | admin ]