Statistics
| Revision:

gvsig-raster / org.gvsig.raster.lizardtech / trunk / org.gvsig.raster.lizardtech / org.gvsig.raster.lizardtech.jni / src / main / java / es / gva / cit / jmrsid / LTIImageStage.java @ 1019

History | View | Annotate | Download (3.45 KB)

1
/**********************************************************************
2
 * $Id: LTIImageStage.java 3539 2006-01-09 12:23:20Z nacho $
3
 *
4
 * Name:     LTIImageStage.java
5
 * Project:  JMRSID. Interface java to mrsid (Lizardtech).
6
 * Purpose:   
7
 * Author:   Nacho Brodin, brodin_ign@gva.es
8
 *
9
 **********************************************************************/
10
/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
11
*
12
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
13
*
14
* This program is free software; you can redistribute it and/or
15
* modify it under the terms of the GNU General Public License
16
* as published by the Free Software Foundation; either version 2
17
* of the License, or (at your option) any later version.
18
*
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
* GNU General Public License for more details.
23
*
24
* You should have received a copy of the GNU General Public License
25
* along with this program; if not, write to the Free Software
26
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
27
*
28
* For more information, contact:
29
*
30
*  Generalitat Valenciana
31
*   Conselleria d'Infraestructures i Transport
32
*   Av. Blasco Ib��ez, 50
33
*   46010 VALENCIA
34
*   SPAIN
35
*
36
*      +34 963862235
37
*   gvsig@gva.es
38
*      www.gvsig.gva.es
39
*
40
*    or
41
*
42
*   IVER T.I. S.A
43
*   Salamanca 50
44
*   46005 Valencia
45
*   Spain
46
*
47
*   +34 963163400
48
*   dac@iver.es
49
*/
50

    
51
package es.gva.cit.jmrsid;
52

    
53

    
54
/**
55
 * Clase que a�ade funcionalidad para la decodificaci�n desde una imagen.
56
 * @author Nacho Brodin <brodin_ign@gva.es>.<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
57
 * @version 0.0
58
 * @link http://www.gvsig.gva.es
59
 */
60
public class LTIImageStage extends LTIImage{
61
        
62
        
63
        private native int readNat(long cPtr, long cPtrscene, long cPtrobj_scenebuffer, long cPtrbuffer, LTISceneBuffer buffer);
64
        private native void readSceneNat(long cPtr, double x, double y, double w, double h, double mag, long reader, int wImg, int hImg, boolean flag, LTISceneBuffer buffer);
65
        private native void FreeLTIImageStageNat(long cPtr);
66
        
67
        public LTIImageStage(){}
68
        
69
        /**
70
         * Constructor
71
         * @param cPtr        direcci�n de memoria al objeto LTIImageStage de C. 
72
         */
73
        public LTIImageStage(long cPtr){
74
                this.cPtr=cPtr;
75
        }
76
        
77
        /**
78
         * Destructor 
79
         */
80
        protected void finalize(){
81
                if(cPtr != 0)
82
                        FreeLTIImageStageNat(cPtr);
83
        }
84
        
85
        /**
86
         * Lee una escena desde una imagen.
87
         * @throws MrSIDException
88
         * @param scene        Objeto escena a leer
89
         * @param buffer        buffer sobre el cual se almacenan los datos leidos
90
         */
91
        public void read(LTIScene scene,LTISceneBuffer buffer)throws MrSIDException{
92

    
93
                if(scene==null || buffer==null)
94
                        throw new MrSIDException("Los argumentos no pueden ser nulos");
95
                
96
                if (cPtr == 0)
97
                        throw new MrSIDException("No se puede acceder al dato");
98
                
99
                int res = readNat(cPtr,scene.cPtr,buffer.cPtr,buffer.cPtrbuffer, buffer);
100
                
101
                if(res!=0)
102
                        throw new MrSIDException("En el m�todo read se ha devuelto un c�digo "+res);
103
                
104
        }
105
        
106
        /**
107
         * Lee una escena desde una imagen.
108
         * @throws MrSIDException
109
         */
110
        public LTISceneBuffer readScene(double x, double y, double w, double h, double mag, MrSIDImageReader reader, int wImg, int hImg, boolean flag)throws MrSIDException{
111
                LTISceneBuffer sbuf = new LTISceneBuffer(wImg, hImg, true);
112
                readSceneNat(cPtr, x, y, w, h, mag, reader.getPtr(), wImg, hImg, flag, sbuf);
113
                return sbuf;
114
        }
115
        
116
}