Statistics
| Revision:

root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / drivers / RasterDriver.java @ 9641

History | View | Annotate | Download (6.45 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2004 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
* For more information, contact:
20
*
21
*  Generalitat Valenciana
22
*   Conselleria d'Infraestructures i Transport
23
*   Av. Blasco Ib??ez, 50
24
*   46010 VALENCIA
25
*   SPAIN
26
*
27
*      +34 963862235
28
*   gvsig@gva.es
29
*      www.gvsig.gva.es
30
*
31
*    or
32
*
33
*   IVER T.I. S.A
34
*   Salamanca 50
35
*   46005 Valencia
36
*   Spain
37
*
38
*   +34 963163400
39
*   dac@iver.es
40
*/
41
package com.iver.cit.gvsig.fmap.drivers;
42

    
43
import java.awt.Dimension;
44
import java.awt.Graphics2D;
45
import java.awt.Image;
46
import java.awt.geom.Rectangle2D;
47
import java.awt.image.BufferedImage;
48
import java.io.File;
49
import java.io.IOException;
50
import java.util.ArrayList;
51

    
52
import org.cresques.cts.ICoordTrans;
53
import org.cresques.filter.RasterFilterStack;
54
import org.cresques.io.GeoRasterFile;
55

    
56
import com.hardcode.driverManager.Driver;
57
import com.iver.cit.gvsig.fmap.ViewPort;
58
import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
59

    
60
public interface RasterDriver extends Driver {
61
   /**
62
    * Define los tipos de fichero que puede leer el driver. Si devuelve true,
63
    * el fichero est? aceptado (es de los que el driver puede leer), si
64
    * devuelve false es porque no lo puede leer.
65
    */
66
        public boolean fileAccepted(File fName);
67
        
68
        public void open(File f) throws IOException;
69

    
70
        public void initialize() throws IOException;
71

    
72
        public void close() throws IOException;
73

    
74
   /**
75
    * Obtiene la extensi?n en coordenadas del mundo real que ocupa este raster 
76
    */
77
        public Rectangle2D getFullExtent();
78
   /**
79
    * Obtiene el n?mero de bandas del raster 
80
    */
81
        public int getNumBands();
82
        
83
        public int getTransparency();
84
        
85
        public void setTransparency(int trans);
86

    
87
        /**
88
         * @see com.iver.cit.gvsig.fmap.layers.LayerOperations#draw(java.awt.image.BufferedImage, java.awt.Graphics2D, ISymbol)
89
         */
90
        public void draw(BufferedImage image, Graphics2D g, ViewPort viewPort)
91
                        throws DriverIOException;
92

    
93
        /**
94
         * Obtiene el valor que el raster tiene en la posici?n x, y del bitmap
95
         * @see com.iver.cit.gvsig.fmap.layers.RasterComplexOperations#getValueByCoords(int, int, int)
96
         * /
97
        byte[] getPixel(int x, int y, byte[] dArray);
98

99
        / **
100
         * Obtiene el valor que el raster tiene en la posici?n x, y del bitmap
101
         * @see com.iver.cit.gvsig.fmap.layers.RasterComplexOperations#getValueByCoords(int, int, int)
102
         * /
103
        int[] getPixel(int x, int y, int[] dArray);
104

105
        /**
106
         * Obtiene el valor que el raster tiene en la posici?n x, y del bitmap
107
         * @see com.iver.cit.gvsig.fmap.layers.RasterComplexOperations#getValueByCoords(int, int, int)
108
         * /
109
        float[] getPixel(int x, int y, float[] dArray);
110

111
        /**
112
         * Obtiene el valor que el raster tiene en la posici?n x, y del mundo real para la banda que se pasa como par?metro
113
         * @see com.iver.cit.gvsig.fmap.layers.RasterComplexOperations#getValueByCoords(int, int, int)
114
         * /
115
        double[] getPixel(int x, int y, double[] dArray);
116
        */
117
        
118
        /**
119
         * Devuelve el tipo de datos del raster
120
         * @see java.awt.image.DataBuffer
121
         */
122
        public int getRasterDataType();
123

    
124
   /**
125
    * Obtiene una muestra del pixel que se pasa como par?metro en la banda que se pasa como par?metro 
126
    */
127
        public Object getData(int x, int y, int band);
128

    
129
   /**
130
    * Obtiene una muestra del pixel que se pasa como par?metro en la banda que se pasa como par?metro 
131
    */
132
        public int getDataAsInt(int x, int y, int band);
133

    
134
   /**
135
    * Obtiene una muestra del pixel que se pasa como par?metro en la banda que se pasa como par?metro 
136
    */
137
        public byte getDataAsByte(int x, int y, int band);
138

    
139
   /**
140
    * Obtiene una muestra del pixel que se pasa como par?metro en la banda que se pasa como par?metro 
141
    */
142
        public float getDataAsFloat(int x, int y, int band);
143

    
144
   /**
145
    * Obtiene una muestra el pixel que se pasa como par?metro en la banda que se pasa como par?metro 
146
    */
147
        public double getDataAsDouble(int x, int y, int band);
148
        
149
        /**
150
         * Obtiene una imagen de tama?o especificado, de la zona (en
151
         * coordenadas de usuario) que se le pide.
152
         * @param size        Tama?o (en p?xeles de im?gen).
153
         * @param userSize Zona especificada (en coordenadas de usuario).
154
         * @param rp Reproyecci?n.
155
         * @return La imagen.
156
         */
157
        public Image getImage(Dimension size, Rectangle2D userSize, ICoordTrans rp);
158
        
159
        /**
160
         * Obtiene un array con atributos de la imagen
161
         * @return Lista de atributos
162
         */
163
        public ArrayList getAttributes();
164
        
165
        /**
166
         * Obtiene una banda
167
         * @param flag        banda a recuperar
168
         */
169
        public int getBand(int flag);
170
        
171
        /**
172
         * Devuelve la posici?n del fichero para la banda especificada.
173
         * @param flag banda.
174
         * @return posici?n del fichero
175
         */
176
        public int getPosFile(int flag);
177

    
178
        
179
        /**
180
         * Activa o desactiva la transparencia
181
         * @param t        true activa la transparencia y false la desactiva
182
         */
183
        public void setTransparency(boolean t);
184
        
185
        /**
186
         * Asocia un colorBand al rojo, verde o azul.
187
         * @param flag cual (o cuales) de las bandas.
188
         * @param nBand        que colorBand
189
         */
190
        public void setBand(int flag, int nBand);
191
        
192
        /**
193
         * Obtiene la pila de filtros
194
         * @return        Pila de filtros
195
         */
196
        public RasterFilterStack getFilterStack();
197
        
198
        /**
199
         * Asigna la pila de filtros 
200
         * @param pila de filtros
201
         */
202
        public void setFilterStack(RasterFilterStack  stack);
203
        
204
        public GeoRasterFile [] getFiles();
205
        
206
        /**
207
         * Asigna un fichero al PxRaster
208
         * @param fileName Nombre del fichero
209
         */
210
        public void addFile(String fileName);
211

    
212
        /**
213
         * Elimina un fichero al PxRaster
214
         * @param fileName Nombre del fichero
215
         */
216
        public void delFile(String fileName);
217
        
218
        /**
219
         * Obtiene el valor del pixel del Image en la posici?n x,y
220
         * @param x Posici?n x
221
         * @param y Posici?n y
222
         * @return valor de pixel
223
         */
224
        public int[] getPixel(double wcx, double wcy);
225
        
226
        /**
227
         * Obtiene el flag que dice si la imagen est? o no georreferenciada
228
         * @return true si est? georreferenciada y false si no lo est?.
229
         */
230
        public boolean isGeoreferenced();
231
                        
232
}