2 - Imagen

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 >



Public Methods

virtual ~bicotiDexel( )

void SetImageImplementation( bicotiImageImplementation< PixelType > * )

virtual void UpdateImageImplementation( ) = 0
virtual void UpdateDexel( ) = 0



virtual ~bicotiDexel( )

        Destructor virtual de la clase.



void SetImageImplementation( bicotiImageImplementation< PixelType > *)

        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.



virtual void UpdateImageImplementation( ) = 0

    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.



virtual void UpdateDexel( ) = 0

    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.



Vease la especificación detallada de cada clase en :