Statistics
| Revision:

root / trunk / libraries / libRaster / src / org / gvsig / raster / dataset / properties / DatasetListTransparency.java @ 10996

History | View | Annotate | Download (4.13 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package org.gvsig.raster.dataset.properties;
20

    
21
import java.util.ArrayList;
22

    
23
        
24
        //TODO: TEST: Realizar un test para la comprobaci?n de transparencias y para mergeTransparencyBands
25
        /**
26
         * <P>
27
         * Representa el estado de transparencia de un raster. Este estado puede tenerlo
28
         * varios agrupados GeoMultiRasterFile. Por esto
29
         * el estado de transparencia de un GeoMultiRasterFile ser? la suma de los estados
30
         * de los GeoRasterFile que lo componen. 
31
         * </P>
32
         * <P>
33
         * El estado de transparencia de un raster puede verse modificado desde distintos
34
         * sitios:
35
         * <UL>
36
         * <LI>Color con transparencia definido en los metadatos de la imagen. Caracteristica de PNG.</LI>
37
         * <LI>Una banda del raster definida como banda de transparencia. PNGs, IMGs o TIFFs 
38
         * pueden tener bandas de transparencia</LI>
39
         * <LI>Tablas de color con valores de transparencia. GIF y PNG pueden tener tablas 
40
         * que definan entradas de color con transparencia</LI>
41
         * <LI>Informaci?n de transparencia en la cabecera raster. Tipicamente valores NO_DATA suelen 
42
         * ser interpretados como transparentes en la visualizaci?n.</LI>
43
         * <LI>Modificaci?n hecha por el usuario. En la visualizaci?n un usuario puede necesitar
44
         * asignar valores o rangos de valores como transparentes.</LI>
45
         * </UL> 
46
         * </P>
47
         * @author Nacho Brodin (nachobrodin@gmail.com)
48
         *
49
         */
50
        public class DatasetListTransparency extends DatasetTransparency{
51
                /**
52
                 * N?mero de banda de transparencia para cada fichero de la lista. 
53
                 */
54
                protected ArrayList                        transparencyBandNumberList = new ArrayList();
55

    
56
                /**
57
                 * Constructor
58
                 */
59
                public DatasetListTransparency(){
60
                        super();
61
                }
62
                
63
                /**
64
                 * Constructor de copia
65
                 */
66
                public DatasetListTransparency(DatasetTransparency ft){
67
                        super(ft);
68
                }
69
                
70
                /**
71
                 * N?mero de banda de transparencia para cada fichero de la lista.
72
                 * @return
73
                 */
74
                public ArrayList getTransparencyBandNumberList() {
75
                        return transparencyBandNumberList;
76
                }
77
                
78
                /**
79
                 * Obtiene el n?mero de banda de transparencia para un fichero de la lista
80
                 * @param i Posici?n del fichero a obtener
81
                 * @return N?mero de banda de transparencia. Ser? menor que cero si no tiene
82
                 */
83
                public int getTransparencyBandNumberList(int i) {
84
                        return ((Integer)transparencyBandNumberList.get(i)).intValue();
85
                }
86
                
87
                /**
88
                 * A?ade un n?mero de banda de transparencia a la lista.
89
                 * @param value N?mero de banda de transparencia.
90
                 */
91
                public void addTransparencyBandNumberList(int value) {
92
                        transparencyBandNumberList.add(new Integer(value));
93
                }
94

    
95
                /**
96
                 * A?ade un n?mero de banda de transparencia para un fichero de la lista
97
                 * @param value N?mero de banda de transparencia
98
                 * @param file N?mero de fichero
99
                 */
100
                public void setTransparencyBandNumberList(int value, int file) {
101
                        transparencyBandNumberList.add(file, new Integer(value));        
102
                }
103
                
104
                /**
105
                 * Mezcla un objeto DatasetTransparency con el actual
106
                 * @param ts objeto TransparencyStatus
107
                 */
108
                public void merge(DatasetTransparency tfs){
109
                        ArrayList tr = tfs.getTransparencyRange();
110
                        for(int i = 0; i < tr.size(); i ++)
111
                                transparencyRanges.add(tr.get(i));
112
                        
113
                        opacity &= tfs.getOpacity();
114
                        
115
                        if(tfs.isTransparencyBand()){
116
                                if(getTransparencyBandNumber() < 0)
117
                                        setTransparencyBand(tfs.getTransparencyBandNumber());
118
                                addTransparencyBandNumberList(tfs.getTransparencyBandNumber());
119
                        }
120
                }
121
                
122
        }