2.2 - Dexels
Los Dexels son parte del concepto abstracto de imagen que manejamos en Bicoti. Básicamente es otra forma de representar a la imagen, en terminos de pixel o atributos de estos, con un criterio no espacial pero manteniendo referencia a las posiciones dentro de una implementación. Para una discusión mas detallada sobre que es un Dexel ir a Introducción al Diseño.
Se han implementados, hasta el momento los siguientes Dexels:
- bicotiDexel
- bicotiDexelCurve
- bicotiDexelHistogram
- bicotiDexelLabeling
- bicotiDexelStatistical
- bicotiDexelRegion.
Todos los Dexels heredan de una clase
base abstracta llamada bicotiDexel, básicamente heredan una
interfaz en común para que se actualicen los cambios. Esto es muy
similar al Pattern Observer, solo que se deja al usuario la responzabilidad
de actualizar los objetos relevantes.
A continuación haremos una descripción
de esta interfaz común.
class bicotiDexel< class PixelType >
void
SetImageImplementation(
bicotiImageImplementation<
PixelType > * )
virtual
void UpdateImageImplementation( ) = 0
virtual
void UpdateDexel( ) = 0
Destructor virtual de la clase.
Inicializa la referencia a una implementación, algunos dexels se puede crear sin una implementación, pero para poder "observar" hay que tener una implementación asociada, tener cuidado de NO CAMBIAR la implementación sobre la marcha, solamente hacerlo cuando "reseteo" el dexel para usarlo en otros casos.
Normalmente una ves que esta el dexel, deseamos "resaltar" o modificar según este la imagen asociada, para actualizar estos cambios existe esta función.
Existe también la posibilidad de recalcular un dexel, esto es útil ya que los dexel se apoyan en la tarea de otros objetos para realizar la suya. Muchas veces, un dexel puede tener "diversos comportamientos" según que objetos se pasen como parámetros. Esto se entendera mejor en un caso concreto.