Revision 6302 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.buffer/org.gvsig.raster.lib.buffer.impl/src/main/java/org/gvsig/raster/lib/buffer/impl/DefaultBuffer.java
DefaultBuffer.java | ||
---|---|---|
1 | 1 |
package org.gvsig.raster.lib.buffer.impl; |
2 | 2 |
|
3 |
import java.awt.geom.AffineTransform; |
|
4 |
import java.awt.geom.NoninvertibleTransformException; |
|
5 |
import java.io.IOException; |
|
6 | 3 |
import java.util.ArrayList; |
7 |
import java.util.Iterator; |
|
8 | 4 |
import java.util.List; |
9 | 5 |
|
10 |
import org.apache.commons.lang3.exception.CloneFailedException; |
|
11 |
import org.cresques.cts.ICoordTrans; |
|
12 | 6 |
import org.cresques.cts.IProjection; |
13 |
import org.slf4j.Logger; |
|
14 |
import org.slf4j.LoggerFactory; |
|
15 |
|
|
16 | 7 |
import org.gvsig.fmap.geom.Geometry; |
17 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
18 | 8 |
import org.gvsig.fmap.geom.GeometryLocator; |
19 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
20 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
21 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
22 | 9 |
import org.gvsig.fmap.geom.primitive.Envelope; |
23 |
import org.gvsig.fmap.geom.primitive.Point; |
|
24 | 10 |
import org.gvsig.raster.lib.buffer.api.Band; |
25 |
import org.gvsig.raster.lib.buffer.api.Band.BandByte; |
|
26 |
import org.gvsig.raster.lib.buffer.api.Band.BandDouble; |
|
27 |
import org.gvsig.raster.lib.buffer.api.Band.BandFloat; |
|
28 |
import org.gvsig.raster.lib.buffer.api.Band.BandInt; |
|
29 |
import org.gvsig.raster.lib.buffer.api.Band.BandShort; |
|
30 |
import org.gvsig.raster.lib.buffer.api.BandNotification; |
|
31 | 11 |
import org.gvsig.raster.lib.buffer.api.Buffer; |
32 | 12 |
import org.gvsig.raster.lib.buffer.api.BufferLocator; |
33 | 13 |
import org.gvsig.raster.lib.buffer.api.BufferManager; |
34 |
import org.gvsig.raster.lib.buffer.api.BufferNotification; |
|
35 |
import org.gvsig.raster.lib.buffer.api.FilterList; |
|
36 | 14 |
import org.gvsig.raster.lib.buffer.api.NoData; |
37 | 15 |
import org.gvsig.raster.lib.buffer.api.PageManager; |
38 | 16 |
import org.gvsig.raster.lib.buffer.api.exceptions.BandException; |
39 | 17 |
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException; |
40 |
import org.gvsig.raster.lib.buffer.api.statistics.Statistics; |
|
41 | 18 |
import org.gvsig.raster.lib.buffer.impl.exceptions.CreateBufferException; |
42 |
import org.gvsig.raster.lib.buffer.impl.statistics.DefaultStatistics; |
|
43 |
import org.gvsig.tools.ToolsLocator; |
|
44 | 19 |
import org.gvsig.tools.locator.LocatorException; |
45 |
import org.gvsig.tools.observer.Notification; |
|
46 |
import org.gvsig.tools.observer.Observable; |
|
47 |
import org.gvsig.tools.observer.impl.BaseWeakReferencingObservable; |
|
48 |
import org.gvsig.tools.task.SimpleTaskStatus; |
|
20 |
import org.slf4j.Logger; |
|
21 |
import org.slf4j.LoggerFactory; |
|
49 | 22 |
|
50 | 23 |
/** |
51 | 24 |
* @author fdiaz |
... | ... | |
78 | 51 |
* @throws CreateBufferException |
79 | 52 |
* If there are some problems creating buffer. |
80 | 53 |
*/ |
81 |
public DefaultBuffer(int rows, int columns, int[] bandDataTypes, NoData[] bandNoData, IProjection projection, |
|
82 |
Envelope envelope, List<PageManager> pageManagers) throws CreateBufferException { |
|
54 |
public DefaultBuffer(int rows, int columns, int[] bandDataTypes, NoData[] bandNoData, |
|
55 |
IProjection projection, Envelope envelope, List<PageManager> pageManagers) |
|
56 |
throws CreateBufferException { |
|
83 | 57 |
this.bands = new ArrayList<Band>(); |
84 | 58 |
this.rows = rows; |
85 | 59 |
this.columns = columns; |
... | ... | |
88 | 62 |
try { |
89 | 63 |
if (envelope == null) { |
90 | 64 |
this.envelope = |
91 |
GeometryLocator.getGeometryManager().createEnvelope(0, 0, columns, rows, Geometry.SUBTYPES.GEOM2D); |
|
65 |
GeometryLocator.getGeometryManager().createEnvelope(0, 0, columns, rows, |
|
66 |
Geometry.SUBTYPES.GEOM2D); |
|
92 | 67 |
} |
93 |
if(bandDataTypes!=null){
|
|
68 |
if (bandDataTypes != null) {
|
|
94 | 69 |
createBands(bandDataTypes, bandNoData, pageManagers); |
95 | 70 |
} |
96 | 71 |
} catch (Exception e) { |
... | ... | |
98 | 73 |
} |
99 | 74 |
} |
100 | 75 |
|
101 |
private void createBands(int[] bandDataTypes, NoData[] bandNoData, List<PageManager> pageManagers)
|
|
102 |
throws BandException { |
|
76 |
private void createBands(int[] bandDataTypes, NoData[] bandNoData, |
|
77 |
List<PageManager> pageManagers) throws BandException {
|
|
103 | 78 |
|
104 | 79 |
BufferManager bufferManager = BufferLocator.getBufferManager(); |
105 | 80 |
|
... | ... | |
115 | 90 |
pageManager = pageManagers.get(i); |
116 | 91 |
} |
117 | 92 |
|
118 |
Band band = bufferManager.createBand(bandDataTypes[i], this.rows, this.columns, noDataBand, pageManager); |
|
93 |
Band band = |
|
94 |
bufferManager.createBand(bandDataTypes[i], this.rows, this.columns, noDataBand, |
|
95 |
pageManager); |
|
119 | 96 |
bands.add(band); |
120 | 97 |
band.addObserver(this); |
121 | 98 |
} |
... | ... | |
126 | 103 |
Buffer cloned; |
127 | 104 |
try { |
128 | 105 |
cloned = |
129 |
BufferLocator.getBufferManager().createBuffer(this.getRows(), this.getColumns(), null,
|
|
130 |
this.getProjection()); |
|
106 |
BufferLocator.getBufferManager().createBuffer(this.getRows(), this.getColumns(), |
|
107 |
this.getBandTypes(), this.getProjection());
|
|
131 | 108 |
} catch (LocatorException | BufferException e) { |
132 | 109 |
throw new CloneNotSupportedException("Can't clone buffer."); |
133 | 110 |
} |
Also available in: Unified diff