org.cresques.io.raster
Class RasterFilterStackManager

java.lang.Object
  extended byorg.cresques.io.raster.RasterFilterStackManager
All Implemented Interfaces:
IStackManager

public class RasterFilterStackManager
extends java.lang.Object
implements IStackManager

Esta clase es de la parte cliente y es la encargada de la gestión de la pila de filtros. Es la que conoce el orden en que se deben apilar estos para que la ejecución sea correcta. Un cliente que desee aplicar un filtro deberá introducirlo en la pila usando para ello esta clase.

Author:
Nacho Brodin (brodin_ign@gva.es)

Field Summary
protected  java.util.ArrayList filterList
           
protected  RasterFilterStack filterStack
           
 int[] order
           
protected  java.util.Hashtable typeFilters
           
 
Constructor Summary
RasterFilterStackManager(RasterFilterStack filterStack)
          Constructor
 
Method Summary
 void addComputeMinMaxFilter()
          Añade un filtro ComputeMinMax
 void addEnhancedFilter(boolean remove)
          Añade un filtro de realce
 void addEnhancedFilter(boolean remove, java.lang.String fileName)
          Añade un filtro de realce.
 void addRemoveBands(java.lang.String bands)
          Añade un filtro de eliminado de bandas.
 void addTailFilter(double tail, double samples, boolean removeMaxValue)
          Añade un filtro de recorte de colas.
 void addTransparencyFilter(int[][] red, int[][] green, int[][] blue, int alpha, int transparencyRed, int transparencyGreen, int transparencyBlue)
          Añade un filtro de transparencia
protected  void addTypeFilter(java.lang.String key, int type, int position)
          Añade un nuevo tipo de filtro
protected  void controlTypes()
          Controla que los tipos de los filtros de la pila sean correctos, es decir, que el tipo de salida de un filtro de salida coincida con el tipo de la entrada del siguiente.
 void createStackFromStrings(java.util.ArrayList f)
          Crea una pila de filtros a partir de un Array de Strings.
 void createStackFromStrings(java.util.ArrayList f, java.lang.Integer pos)
          Crea una pila de filtros a partir de un Array de Strings.
 void deleteTempFilters()
          Elimina los filtros temporales, es decir, todos los filtros introducidos desde el último resetTempFilters que se ha realizado.
 java.lang.String getElem(java.lang.String cadena)
          Obtiene el elemento de una cadena de la forma elemento=valor
 RasterStats getStackStats()
          Obtiene el objeto de estadisticas asignado a la pila.
 java.util.ArrayList getStringsFromStack()
          Convierte cada filtro o elemento de un filtro de la pila en un String de la forma elemento=valor
 int[][] getTransparecyB()
          Obtiene el rango de azul del filtro de transparencia de la pila
 int[][] getTransparecyG()
          Obtiene el rango de verde del filtro de transparencia de la pila
 int[][] getTransparecyR()
          Obtiene el rango de rojo del filtro de transparencia de la pila
protected  int getType(RasterFilter rasterFilter)
          Obtiene el tipo de filtro a partir del objeto RasterFilter
 int getTypeFilter(java.lang.String key)
          Obtiene la constante correspondiente a un tipo de filtro
 java.lang.String getValue(java.lang.String cadena)
          Obtiene el valor de una cadena de la forma elemento=valor
protected  void init()
          Inicialización.
 boolean isActive(int type)
          Método que devuelve true si el tipo de filtro pasado por parámetro está en la pila y false si no lo está.
protected  void register(IStackManager manager)
          Registra un manager del sistema
 void removeFilter(int type)
          Elimina los filtros de la pila de un determinado tipo
 void resetTempFilters()
          Resetea el flag de temporalidad de los filtros de la pila.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

filterStack

protected RasterFilterStack filterStack

typeFilters

protected java.util.Hashtable typeFilters

order

public int[] order

filterList

protected java.util.ArrayList filterList
Constructor Detail

RasterFilterStackManager

public RasterFilterStackManager(RasterFilterStack filterStack)
Constructor

Parameters:
filterStack -
Method Detail

register

protected void register(IStackManager manager)
Registra un manager del sistema

Parameters:
manager -

init

protected void init()
Inicialización. Asigna el orden de los filtros


addTypeFilter

protected void addTypeFilter(java.lang.String key,
                             int type,
                             int position)
Añade un nuevo tipo de filtro

Parameters:
key - Nombre del filtro
type - Constante entera asignada a ese tipo

getTypeFilter

public int getTypeFilter(java.lang.String key)
Obtiene la constante correspondiente a un tipo de filtro

Parameters:
key - Clave para obtener la constante que corresponde al nombre del filtro
Returns:
Tipo de filtro

addTransparencyFilter

public void addTransparencyFilter(int[][] red,
                                  int[][] green,
                                  int[][] blue,
                                  int alpha,
                                  int transparencyRed,
                                  int transparencyGreen,
                                  int transparencyBlue)
Añade un filtro de transparencia

Parameters:
red - Intervalos de la banda del rojo a poner transparentes
green - Intervalos de la banda del verde a poner transparentes
blue - Intervalos de la banda del azul a poner transparentes
alpha - Transparencia
transparencyRed - Color en la banda del rojo de la transparencia
transparencyGreen - Color en la banda del verde de la transparencia
transparencyBlue - Color en la banda del azul de la transparencia

getTransparecyR

public int[][] getTransparecyR()
Obtiene el rango de rojo del filtro de transparencia de la pila

Returns:
rango de rojo

getTransparecyG

public int[][] getTransparecyG()
Obtiene el rango de verde del filtro de transparencia de la pila

Returns:
rango de verde

getTransparecyB

public int[][] getTransparecyB()
Obtiene el rango de azul del filtro de transparencia de la pila

Returns:
rango de azul

addRemoveBands

public void addRemoveBands(java.lang.String bands)
Añade un filtro de eliminado de bandas. Las pone a 0

Parameters:
bands -

addTailFilter

public void addTailFilter(double tail,
                          double samples,
                          boolean removeMaxValue)
Añade un filtro de recorte de colas.

Parameters:
tail - porcentaje de recorte
samples - porcentaje de muestras tomadas del total de la imagen

addEnhancedFilter

public void addEnhancedFilter(boolean remove,
                              java.lang.String fileName)
Añade un filtro de realce. Esta versión tiene el parámetro para añadirle el nombre del fichero. Esto se usa para que si a un fichero se le ha calculado ya el recorte de colas no se vuelva a calcular, evitando así que si hacemos un draw a una imagen por bloques cada bloque tenga un calculo distinto para el recorte.


addEnhancedFilter

public void addEnhancedFilter(boolean remove)
Añade un filtro de realce


addComputeMinMaxFilter

public void addComputeMinMaxFilter()
Añade un filtro ComputeMinMax


getType

protected int getType(RasterFilter rasterFilter)
Obtiene el tipo de filtro a partir del objeto RasterFilter

Parameters:
rasterFilter - Objeto RasterFilter del cual se quiere saber que tipo de filtro contiene
Returns:
Tipo de filtro según las constantes contenidas en RasterFilterStackManager

controlTypes

protected void controlTypes()
Controla que los tipos de los filtros de la pila sean correctos, es decir, que el tipo de salida de un filtro de salida coincida con el tipo de la entrada del siguiente. En caso de no ser así crea el filtro de tipo adecuado y lo sustituye en el no coincidente. Esto es necesario ya que en la eliminación de filtros puede quedarse en inconsistencia de tipos.


isActive

public boolean isActive(int type)
Método que devuelve true si el tipo de filtro pasado por parámetro está en la pila y false si no lo está.

Returns:
true si está en la pila y false si no lo está

removeFilter

public void removeFilter(int type)
Elimina los filtros de la pila de un determinado tipo

Parameters:
type - Tipo de filtro a eliminar

resetTempFilters

public void resetTempFilters()
Resetea el flag de temporalidad de los filtros de la pila. Esto equivale a fijar los filtros que ya existen en la pila. A partir de ese momento los filtros que se introduzcan podrán ser eliminados de golpe llamando a la función deleteTempFilters


deleteTempFilters

public void deleteTempFilters()
Elimina los filtros temporales, es decir, todos los filtros introducidos desde el último resetTempFilters que se ha realizado.


getStackStats

public RasterStats getStackStats()
Obtiene el objeto de estadisticas asignado a la pila.

Returns:

getStringsFromStack

public java.util.ArrayList getStringsFromStack()
Description copied from interface: IStackManager
Convierte cada filtro o elemento de un filtro de la pila en un String de la forma elemento=valor

Specified by:
getStringsFromStack in interface IStackManager
Returns:
ArrayList donde cada elemento es una cadena

createStackFromStrings

public void createStackFromStrings(java.util.ArrayList f)
Crea una pila de filtros a partir de un Array de Strings. Cada elemento del array debe tener la forma elemento=valor.


createStackFromStrings

public void createStackFromStrings(java.util.ArrayList f,
                                   java.lang.Integer pos)
Description copied from interface: IStackManager
Crea una pila de filtros a partir de un Array de Strings. Cada elemento del array debe tener la forma elemento=valor.

Specified by:
createStackFromStrings in interface IStackManager

getElem

public java.lang.String getElem(java.lang.String cadena)
Obtiene el elemento de una cadena de la forma elemento=valor

Parameters:
cadena -
Returns:

getValue

public java.lang.String getValue(java.lang.String cadena)
Obtiene el valor de una cadena de la forma elemento=valor

Parameters:
cadena -
Returns: