CoordComponentType


      Clases

bicotiCoordinate
bicotiCoordinate2D
bicotiCoordinate3D
bicotiCoodinateVectorialStatic

     Templates Clases

CoordComponentType


        La clase CoordComponentType, es el template que parametriza a las coordenadas. Las coordenadas
      son esencialmente un array de elementos de tipo CoordComponentType.
      En todos los algoritmos que se han implementado solo ha surgido la necesidad de usar dos tipos
      de coordenadas que son :

               -  Coordenadas de enteros, para ubicar datos en estructuras discretas , como por ejemplo
                            pixels en imágenes.
               -  Coordenadas de reales, para ubicar datos en estructuras continuas, como cuando se necesita
                            interpolar pixels en imágenes.

      Es decir que siempre el template ha sido un tipo básico.
      Para ganar claridad hemos definido ( en el archivo "bicoti_basic.hpp" ) dos macros :

                -  INTEGER - para coordenadas de enteros.
                -  REAL - para coordenadas de reales.

      Por defecto definimos :   INTEGER = int
                                           REAL = float
      Pero podrían cambiarse a long int y double ( o algún otro tipo básico ) si se quisiera mayor precisión.
      Es claro que al aumentar el tamaño ( en bytes ) de las componentes, perdemos en performance desde
      el punto de vista del ahorro de memoria y tiempo de procesamiento.
      Ver "Macros" para saber como cambiar los tipos de INTEGER y REAL.

      Por lo que cuando necesitamos una coordenada de enteros definimos algo como:

                         bicotiCoordinate2D< INTEGER >  coord_int;

        y para definir una coordenada de reales :

                         bicotiCoordinate2D< REAL >  coord_real;

      Para todas las coordenadas existen operadores de casting para convertirlas de REAL a INTEGER
      y viceversa. Puedo hacer :

                         coord_real = ( bicotiCoordinate2D< INTEGER > ) coord_int

      o al revés :

                         coord_int = ( bicotiCoordinate2D< REAL > ) coord_real
 

      Sin embargo, al ser un template, las componentes podrían ser una clase cualquiera definida por el
      usuario. Ahora para que toda la funcionalidad de las coordenadas tenga sentido, la clase
      CoordComponentType debe tener definidas las funciones que se especifican a continuación.



   Class CoordComponentType


      Funciones públicas de la clase

CoordComponentType ( )
                  Constructor por defecto ( sin perámetros )

CoordComponentType operator = ( CoordComponentType )
                  Operador de asignación.
bool operator == ( CoordComponentType )
                  Operador de booleano de igualdad.

CoordComponentType operator + ( double )
                  Suma con un doble.
CoordComponentType operator - ( double )
                  Resta con un doble.
CoordComponentType operator * ( double )
                  Producto por un doble.
CoordComponentType operator / ( double )
                  Division por un doble.

CoordComponentType operator + ( CoordComponentType )
                  Suma.
CoordComponentType operator - ( CoordComponentType )
                  Resta.
CoordComponentType operator * ( CoordComponentType )
                  Producto.
CoordComponentType operator / ( CoordComponentType )
                  Division.

operator ( INTEGER ) ( CoordComponentType )
                  Casting de CoordComponentType a INTEGER
operator ( REAL ) ( CoordComponentType )
                  Casting de CoordComponentType a REAL.
 

      Funciones externas sobre CoordComponentType


CoordComponentType pow ( CoordComponentType , int )
                  Eleva CoordComponentType a un exponente.

CoordComponentType sqrt ( CoordComponentType )
                  Raíz cuadrada de CoordComponentType.