]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Constructor/doc/especificaciones_tecnicas.lyx
si tienen un minuto lean esto y digan que les parece
[z.facultad/75.42/plaqui.git] / Constructor / doc / especificaciones_tecnicas.lyx
index 92e403347663c22db880a691efc0b6525d92ba44..907c356169d56ff9f75df6ea78adcc2ea3f13330 100644 (file)
@@ -48,7 +48,7 @@ iento o abstracci
 \layout Section
 
 Descripción del desarrollo:
 \layout Section
 
 Descripción del desarrollo:
-\layout Subsection*
+\layout Subsection
 
 Constructor:
 \layout Standard
 
 Constructor:
 \layout Standard
@@ -110,20 +110,33 @@ check_connection()
 \layout Standard
 
 También está contenida en ella la clase WorkPlace, que detalla a continuación.
 \layout Standard
 
 También está contenida en ella la clase WorkPlace, que detalla a continuación.
-\layout Subsection*
+\layout Subsection
 
 WorkPlace:
 \layout Standard
 
 Esta clase es la encarga de de manejar el área trabajo.
 
 WorkPlace:
 \layout Standard
 
 Esta clase es la encarga de de manejar el área trabajo.
+ Deriva de Gtk::DrawingArea pues es donde se van a dibujar todos los elementos.
  Una de sus principales tareas es redibujarse cuando sea necesario y al
  mismo tiempo, redibujar los elementos que contiene, como pueden ser los
  items de la planta o las líneas lógicas que conectan los mismos.
 \layout Standard
 
  Una de sus principales tareas es redibujarse cuando sea necesario y al
  mismo tiempo, redibujar los elementos que contiene, como pueden ser los
  items de la planta o las líneas lógicas que conectan los mismos.
 \layout Standard
 
+Para lograr esto, se ha redefinido el método virtual (contenido en la clase
+ ancestro) 
+\begin_inset Quotes eld
+\end_inset 
+
+on_expose_event()
+\begin_inset Quotes erd
+\end_inset 
+
+ de manera conveniente.
+\layout Standard
+
 También se encarga de eliminar correctamente un item, eliminando al mismo
  tiempo las lineas que llegan o salen de él.
 También se encarga de eliminar correctamente un item, eliminando al mismo
  tiempo las lineas que llegan o salen de él.
-\layout Subsection*
+\layout Subsection
 
 CItem:
 \layout Standard
 
 CItem:
 \layout Standard
@@ -165,4 +178,117 @@ check_connection()
 ar su manera de verificar como y con quién esta conectado.
 \layout Standard
 
 ar su manera de verificar como y con quién esta conectado.
 \layout Standard
 
+Al ser esta clase abstracta, no puede ser instanciada, con lo cual existirá
+ una clase derivada de esta para cada item que se quiera agregar en la aplicació
+n.
+\layout Subsubsection
+
+Método check_connection():
+\layout Standard
+
+Anteriormente se mencionó que cada item verifica sus conexiones de manera
+ diferente.
+\layout Standard
+
+Las clases que heredan de CItem son las siguientes:
+\layout Enumerate
+
+Conduct: representa un tubo.
+\layout Enumerate
+
+Splitter: representa un codo.
+\layout Enumerate
+
+Union: representa un empalme ( UNION ó DIVISION).
+\layout Enumerate
+
+Cistern: representa un tanque,
+\layout Enumerate
+
+Exclusa: representa una exclusa.
+\layout Enumerate
+
+Drain: representa un drenaje.
+\layout Enumerate
+
+Pump: representa una bomba.
+\layout Standard
+
+Para las clases Conduct, Splitter y Exclusa, este método es bastante similar,
+ sobre todo teniendo en cuenta que una exclusa es un tubo con una propiedad
+ mas (abierto/cerrado) y el codo es un tubo que en la aplicación representa
+ un curva.
+\layout Standard
+
+Estos tres elementos tienen la particularidad que sus conectores físicos
+ no estan definidos en el momento de su creación, sino que se definen una
+ vez que pertenecen a un circuito.
+\layout Standard
+
+La verificación se realiza recorriendo la lista de items y preguntandole
+ a cada uno que posee en sus extremos.
+\layout Standard
+
+El tanque, la bomba, el empalme y el drenaje, tiene definidos sus conectores
+ en el momento de la creación.
+\layout Standard
+
+Supongamos que el circuito es el siguiente:
+\layout Standard
+
+
+\begin_inset Graphics
+       filename /home/nico/plaqui/Constructor/doc/check_connection.png
+
+\end_inset 
+
+
+\layout Standard
+
+Donde bomba0 y tubo0 son los de la izquiera y bomba1 y tubo1 son los de
+ la derecha, para poder diferenciarlos.
+\layout Standard
+
+Cabe aclarar que no importa con cual de los items se comience la iteración.
+\layout Standard
+
+Según la imagen actual de la bomba0, este debe preguntar con quién esta
+ conectado en su salida pero ya sabe, por ser bomba que tendrá una salida,
+ luego el tubo0 que en ese momento no esta definido, debe averiguar como
+ definirse, para hacerlo pregunta en su otro extremo el cual esta conectado
+ con una unión, que por ser unión posee dos entradas (horizontales en este
+ caso) y una salida (vertical).
+ La unión le responde que posee una entrada, por lo tanto el extremo derecho
+ del tubo será una salida, lo cual implica que el extremo izquierdo tiene
+ que ser una entrada, y esto es compatible con la bomba.
+ De esta forma la bomba0 y el tubo0 se setean sus conectores y se establecen
+ como 
+\begin_inset Quotes eld
+\end_inset 
+
+conectados
+\begin_inset Quotes erd
+\end_inset 
+
+.
+ Continuando con la iteración, es el turno del tubo0 (por el orden de incersión
+ en la lista), pero este ya está conectado, por lo tanto no se realizan
+ verificaciones.
+\layout Standard
+
+Lo mismo ocurre del lado derecho del circuito con la bomba1 y el tubo1.
+\layout Standard
+
+Algo similar ocurre cuando la unión pregunta que tiene en su salida, la
+ exclusa debe preguntarle al tanque y este le responderá que posee una entrada,
+ luego la exculsa tendrá una entrada en el extremo superior y una salida
+ en el inferior; nuevamente el circuito es compatible.
+ Por último el tanque le solicita al codo que le informe su estado y el
+ proceso se repite con el drenaje que posee solamente una salida.
+\layout Standard
+
+Así todos los elementos han quedado conectados y conocen también con quién
+ o quienes lo están.
+\layout Standard
+
 \the_end
 \the_end