Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.api / src / main / java / org / gvsig / fmap / dal / coverage / datastruct / TransparencyRange.java @ 2443

History | View | Annotate | Download (5.26 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.fmap.dal.coverage.datastruct;
23

    
24
import java.io.IOException;
25

    
26
import org.gvsig.tools.persistence.Persistent;
27
/**
28
 * Clase que representa a un conjunto de pixeles con transparencia. Incluye los
29
 * rangos de transparencia para cada banda, la cadena que va en la lista y la
30
 * operaci?n que se realiza entre ellos. Un And significa que ser?n
31
 * transparentes todos los pixeles que cumplan con R con G y con B. Un Or
32
 * significar? que tendr?n transparencia todos los pixeles que cumplan con R con
33
 * G o con B.
34
 *
35
 * @author Nacho Brodin (nachobrodin@gmail.com)
36
 */
37
public interface TransparencyRange extends Persistent {
38

    
39
        /**
40
         * Obtiene la operaci?n  utilizada
41
         * @param and Si es true significa que se usa un AND y false implica
42
         * que se usa un OR
43
         */
44
        public boolean isAnd();
45

    
46
        /**
47
         * Asigna la operaci?n AND como la utilizada
48
         * @param and booleano que si est? a true significa que el la operaci?n
49
         * AND es la utilizada como operaci?n.
50
         */
51
        public void setAnd(boolean and);
52

    
53
        /**
54
         * Obtiene el intervalo de valores correspondiente a la banda del azul
55
         * @return Array bidimensional de enteros correspondiente a la banda del azul
56
         */
57
        public int[] getBlue();
58

    
59
        /**
60
         * Asigna los intervalos de valores correspondientes a las bandas del
61
         * rojo, azul y verde
62
         * @param red Array bidimensional de enteros correspondiente a la banda del rojo
63
         * @param green Array bidimensional de enteros correspondiente a la banda del verde
64
         * @param blue Array bidimensional de enteros correspondiente a la banda del azul
65
         */
66
        public void setRGB(int[] red, int[] green, int[] blue);
67

    
68
        /**
69
         * Asigna el intervalo de valores correspondiente a la banda del azul
70
         * @param blue Array bidimensional de enteros correspondiente a la banda del azul
71
         */
72
        public void setBlue(int[] blue);
73

    
74
        /**
75
         * Obtiene el intervalo de valores correspondiente a la banda del verde
76
         * @return Array bidimensional de enteros correspondiente a la banda del verde
77
         */
78
        public int[] getGreen();
79

    
80
        /**
81
         * Asigna el intervalo de valores correspondiente a la banda del verde
82
         * @param green Array bidimensional de enteros correspondiente a la banda del verde
83
         */
84
        public void setGreen(int[] green);
85

    
86
        /**
87
         * Obtiene el intervalo de valores correspondiente a la banda del rojo
88
         * @return Array bidimensional de enteros correspondiente a la banda del rojo
89
         */
90
        public int[] getRed();
91

    
92
        /**
93
         * Asigna el intervalo de valores correspondiente a la banda del rojo
94
         * @param red Array bidimensional de enteros correspondiente a la banda del rojo
95
         */
96
        public void setRed(int[] red);
97

    
98
        /**
99
         * Obtiene la cadena que representa una entrada en la tabla.
100
         * @return Cadena que representa una entrada en la tabla
101
         */
102
        public String getStrEntry();
103

    
104
        /**
105
         * Asigna la cadena que representa una entrada en la tabla.
106
         * @param strEntry Cadena que representa una entrada en la tabla.
107
         */
108
        public void setStrEntry(String strEntry);
109

    
110

    
111
        /**
112
         * Esta funci?n valida la cadena de entrada por medio de una m?quina de estados. Valida las
113
         * siguientes posibilidades en la cadena de entrada:
114
         * <LI>
115
         * <UL>(valor_rojo) & (Valor_verde) & (Valor_azul)</UL>
116
         * <UL>(valor_rojo) | (Valor_verde) | (Valor_azul)</UL>
117
         * </LI>
118
         * Despues de la validaci?n parsea el contenido y carga los par?metros r,g,b con los
119
         * intervalos de valores. Estos par?metros deben ser pasados como arrays de enteros de
120
         * dos elementos.
121
         * @param values
122
         * @param r        Intervalo de rojo
123
         * @param g Intervalo de verde
124
         * @param b Intervalo de azul
125
         * @return Devuelve true si la operaci?n usada en los intervalos es un AND y false si es un OR
126
         */
127
        public boolean stringToInterval(String values, int[] r, int[] g, int[] b) throws IOException;
128

    
129
        /**
130
         * Carga la cadena StrEntry leyendo los valores en los vectores que representa los intervalos.
131
         */
132
        public void loadStrEntryFromValues();
133

    
134
        /**
135
         * Obtiene el alpha asociado al rango. Por defecto es de 0, es decir
136
         * totalmente transparente pero puede asociarsele un valor distinto
137
         * @return Alpha asociado
138
         */
139
        public int getAlpha();
140

    
141
        /**
142
         * Asigna el alpha asociado al rango. Por defecto es de 0, es decir
143
         * totalmente transparente pero puede asociarsele un valor distinto
144
         * @param alpha asociado
145
         */
146
        public void setAlpha(int alpha);
147

    
148
        /**
149
         * Realiza la uni?n entre el intervalo actual y el pasado por par?metro
150
         * @param interval intervalo pasado
151
         * @param rgb
152
         * @return union de intervalos
153
         */
154
        public int[] union(int[] interval, int rgb);
155
}