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.
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.