Clases
bicotiImageBorderStrategy
bicotiImageBorderStrategy2D
bicotiImageBorderStrategy2DX0
bicotiImageBorderStrategy2DX1
bicotiImageBorderStrategy3D
bicotiImageBorderStrategy3DX0
bicotiImageBorderStrategy3DX1
bicotiImageBorderStrategy3DX2
Templates Clases
PixelType
class bicotiImageBorderStrategy2D < class PixelType >
virtual
void SetNextCoordinates ( ) = 0
void
UseIterator
(
bicotiImageIterator2D< PixelType > * )
void
UseStep
( int )
Esta función se declara en la clase base bicotiImageBorderStrategy y se define en las clases derivadas. Ver SetNextCoordinates( ) en bicotiImageBorderStrategy
Esta función asigna un iterador a la estrategia. Dado que iterador - estrategia de borde tienen referencias cruzadas, hay que crear uno y luego asignar al otro. La estrategia es parte del iterador, pero esta necesita ver sus variable, entonces tiene un puntero al iterador.
Cuando se crea una nueva estrategia, por ejemplo en 2D :
bicotiImageBorderStrategy2DX0< int > x0_strategy;
Luego hay que asignarsela a un iterador mediante la función UseBorderStrategyX0 del iterador
iterator.UseBorderStrategyX0( x0_strategy );
Internamente esta usa
la función UseIterator de la estrategia asignándose a si
mismo como iterador,
haciendo :
x0_strategy.UseIterator( this )
Este procedimiento es análogo
para las estrategias en x0 y x1, usando las correspondientes funciones
del iterador.
Asigna
el valor del paso del salto cuando se llega al borde.
Por ejemplo
hacemos:
bicotiImageBorderStrategy2DX0< int > x0_strategy;
x0_strategy.UseStep( 2 );
// estrategia horizontal con paso 2
iterator.UseBorderStrategyX0( x0_strategy );
Le
asigno al iterador una estrategia en x0 con paso 2, entonces cuando hago
una recorrida por filas
me voy
a saltear una fila por medio.
Ver la clase base bicotiImageBorderStrategy o el archivo recorridos.cpp para más ejemplos.