Revision 5484 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/DefaultBandDouble.java
DefaultBandDouble.java | ||
---|---|---|
1 | 1 |
package org.gvsig.raster.lib.buffer.impl; |
2 | 2 |
|
3 |
import java.util.Arrays; |
|
4 |
|
|
3 | 5 |
import org.gvsig.raster.lib.buffer.api.Band; |
4 | 6 |
import org.gvsig.raster.lib.buffer.api.Band.BandDouble; |
5 | 7 |
import org.gvsig.raster.lib.buffer.api.BufferManager; |
6 | 8 |
import org.gvsig.raster.lib.buffer.api.NoData; |
7 | 9 |
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException; |
8 | 10 |
|
9 |
|
|
10 | 11 |
/** |
11 | 12 |
* @author fdiaz |
12 | 13 |
* |
13 | 14 |
*/ |
14 |
public class DefaultBandDouble extends AbstractBand implements BandDouble{ |
|
15 |
public class DefaultBandDouble extends AbstractBand implements BandDouble {
|
|
15 | 16 |
|
16 | 17 |
double[] data; |
17 | 18 |
|
18 |
|
|
19 | 19 |
/** |
20 | 20 |
* @param rows |
21 | 21 |
* @param columns |
... | ... | |
32 | 32 |
public DefaultBandDouble(int rows, int columns, NoData noData) { |
33 | 33 |
this.rows = rows; |
34 | 34 |
this.columns = columns; |
35 |
data = new double[rows*columns];
|
|
35 |
data = new double[rows * columns];
|
|
36 | 36 |
this.noData = noData; |
37 | 37 |
} |
38 | 38 |
|
... | ... | |
48 | 48 |
|
49 | 49 |
@Override |
50 | 50 |
public void set(int row, int column, Object value) { |
51 |
setValue(row, column, (double)value); |
|
51 |
setValue(row, column, (double) value);
|
|
52 | 52 |
} |
53 | 53 |
|
54 | 54 |
@Override |
55 | 55 |
public void fill(Object value) { |
56 |
double aux = (double) getNoData().getValue(); |
|
57 |
if(value != null){ |
|
58 |
aux = (double)value; |
|
56 |
if (value == null) { |
|
57 |
if (getNoData().isDefined()) { |
|
58 |
value = getNoData().getValue(); |
|
59 |
} else { |
|
60 |
// Do nothing, no data value is defined |
|
61 |
return; |
|
62 |
} |
|
59 | 63 |
} |
60 |
for (int i = 0; i < data.length; i++) { |
|
61 |
data[i] = aux; |
|
62 |
} |
|
64 |
Arrays.fill(data, (double) value); |
|
63 | 65 |
} |
64 | 66 |
|
65 |
double[] getData(){ |
|
67 |
double[] getData() {
|
|
66 | 68 |
return data; |
67 | 69 |
} |
68 | 70 |
|
69 | 71 |
@Override |
70 | 72 |
public void copyFrom(Band source) throws CopyFromBandException { |
71 |
if(this.getColumns()!=source.getColumns() || this.getRows()!=source.getRows() || !(source instanceof DefaultBandDouble)){ |
|
72 |
throw new CopyFromBandException(source,this); |
|
73 |
if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows() |
|
74 |
|| !(source instanceof DefaultBandDouble)) { |
|
75 |
throw new CopyFromBandException(source, this); |
|
73 | 76 |
} |
74 |
System.arraycopy(((DefaultBandDouble)source).getData(), 0, this.data, 0, this.getRows()*this.getColumns()); |
|
77 |
System.arraycopy(((DefaultBandDouble) source).getData(), 0, this.data, 0, this.getRows() |
|
78 |
* this.getColumns()); |
|
75 | 79 |
} |
76 | 80 |
|
77 | 81 |
@Override |
78 | 82 |
public double getValue(int row, int column) { |
79 |
return data[row+column*getColumns()];
|
|
83 |
return data[row + column * getColumns()];
|
|
80 | 84 |
} |
81 | 85 |
|
82 | 86 |
@Override |
83 | 87 |
public void setValue(int row, int column, double value) { |
84 |
data[row+column*getColumns()] = value;
|
|
88 |
data[row + column * getColumns()] = value;
|
|
85 | 89 |
} |
86 | 90 |
|
87 | 91 |
@Override |
... | ... | |
91 | 95 |
|
92 | 96 |
@Override |
93 | 97 |
public void fetchRow(int row, Object rowBuffer) { |
94 |
System.arraycopy(data, row*getColumns(), (double[])rowBuffer, 0, getColumns());
|
|
98 |
System.arraycopy(data, row * getColumns(), (double[]) rowBuffer, 0, getColumns());
|
|
95 | 99 |
|
96 | 100 |
} |
97 | 101 |
|
98 | 102 |
@Override |
99 | 103 |
public void putRow(int row, Object rowBuffer) { |
100 |
System.arraycopy((double[])rowBuffer, 0, data, row*getColumns(), getColumns());
|
|
104 |
System.arraycopy((double[]) rowBuffer, 0, data, row * getColumns(), getColumns());
|
|
101 | 105 |
|
102 | 106 |
} |
103 | 107 |
|
Also available in: Unified diff