27 febrero, 2013

Motor de Rendering - VTK

Tomado del webinar de Kitware de VTK, agrego la siguiente imagen que me parece vital para entender la conexión entre los objetos que hacen parte de las escenas VTK:


Tomado de http://www.vtk.org/VTK/resources/webinars.html


Esta es la mejor manera de explicar y entender las conexiones necesarias en VTK !! (este mismo diagrama lo hice en repetidas ocasiones hace unos años)

21 febrero, 2013

Patrones de diseño - Composite

Siguiendo la explicación de Wikipedia, es la composición de objetos simples para formar un objeto complejo. Se puede representar fácilmente en forma de arbol y un ejemplo claro es la creación de GUI donde se crea un Frame a partir de Paneles que tienen a su vez Widgets, que generalmente son compuestos por elementos aun más atómicos como botones, cajas de texto, etiquetas, …

Ahora bien, como ejemplo claro y muy personal, bbEditor está en su base construido de esta manera (para el manejo de Cajas que tienen a su vez objetos como Inputs y Outputs, más la construcción de las cajas complejas) !! :O Composite + MVC + Observer/Observable + Singleton … No está tan mal diseñado finalmente, pero aun hay problemas de Asignación de responsabilidades y unas clases llenas de código hasta lo más mínimo…. Cómo se hubiera podido desacoplar esto??

20 febrero, 2013

CreaTools - Complex Boxes

Something very important to remember when using complex boxes in CreaTools / Algo muy importante para recordar cuando se usan cajas complejas en CreaTools:

Une entrée de la boîte complexe qui est utilisée à l’intérieur par des autres boîtes. Voici un exemple,

image

Si on utilise cette boîte dans un autre diagramme, la valeur de l’entrée n’est pas transmit à la boîte complexe. Pour ce cas spécifique avec des chaines de caractères, j’ai fait le changement suivant et l’application marche:

image

Par contre, une solution plus générique pour un objet quelconque c’est d’utiliser une boîte MagicBox au lieu du ConcatStrings. Comme ca , il fait une copie directe de l’entrée a toutes les sorties.