Revision 5517

View differences:

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/test/java/org/gvsig/raster/lib/buffer/impl/DefaultBandDoubleTest.java
36 36

  
37 37
    public void testDefaultBandDoubleIntInt() {
38 38
        init();
39
        Band band=new DefaultBandDouble(ROWS, COLUMNS);
39
        Band band=new MemoryBandDouble(ROWS, COLUMNS);
40 40
        band.fill(testValueZero);
41 41
        for (int i=0;i<band.getRows();i++){
42 42
            double[] rowBuffer = new double[COLUMNS];
......
51 51
        init();
52 52
        BufferManager bufferManager = BufferLocator.getBufferManager();
53 53
        NoData noData=bufferManager.createNoData(Double.NaN, Double.NaN);
54
        Band band=new DefaultBandDouble(ROWS, COLUMNS,noData);
54
        Band band=new MemoryBandDouble(ROWS, COLUMNS,noData);
55 55
        band.fill(testValueZero);
56 56
        for (int i=0;i<band.getRows();i++){
57 57
            double[] rowBuffer = new double[COLUMNS];
......
86 86

  
87 87
    public void testCopyFrom() {
88 88
        init();
89
        Band band=new DefaultBandDouble(ROWS, COLUMNS);
89
        Band band=new MemoryBandDouble(ROWS, COLUMNS);
90 90
        band.fill(testValueOne);
91 91
        try {
92 92
            band.copyFrom(testBand1);
......
103 103
    }
104 104

  
105 105
    public void testGetValue() {
106
        DefaultBandDouble band=new DefaultBandDouble(ROWS, COLUMNS);
106
        MemoryBandDouble band=new MemoryBandDouble(ROWS, COLUMNS);
107 107
        band.fill(testValueOne);
108 108
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
109 109
    }
110 110

  
111 111
    public void testSetValue() {
112
        DefaultBandDouble band=new DefaultBandDouble(ROWS, COLUMNS);
112
        MemoryBandDouble band=new MemoryBandDouble(ROWS, COLUMNS);
113 113
        band.fill(testValueZero);
114 114
        band.setValue(ROWS-1, COLUMNS-1, testValueOne);
115 115
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
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/test/java/org/gvsig/raster/lib/buffer/impl/DefaultBandIntTest.java
36 36

  
37 37
    public void testDefaultBandIntIntInt() {
38 38
        init();
39
        Band band=new DefaultBandInt(ROWS, COLUMNS);
39
        Band band=new MemoryBandInt(ROWS, COLUMNS);
40 40
        band.fill(testValueZero);
41 41
        for (int i=0;i<band.getRows();i++){
42 42
            int[] rowBuffer = new int[COLUMNS];
......
51 51
        init();
52 52
        BufferManager bufferManager = BufferLocator.getBufferManager();
53 53
        NoData noData=bufferManager.createNoData(null, null);
54
        Band band=new DefaultBandInt(ROWS, COLUMNS,noData);
54
        Band band=new MemoryBandInt(ROWS, COLUMNS,noData);
55 55
        band.fill(testValueZero);
56 56
        for (int i=0;i<band.getRows();i++){
57 57
            int[] rowBuffer = new int[COLUMNS];
......
86 86

  
87 87
    public void testCopyFrom() {
88 88
        init();
89
        Band band=new DefaultBandInt(ROWS, COLUMNS);
89
        Band band=new MemoryBandInt(ROWS, COLUMNS);
90 90
        band.fill(testValueOne);
91 91
        try {
92 92
            band.copyFrom(testBand1);
......
103 103
    }
104 104

  
105 105
    public void testGetValue() {
106
        DefaultBandInt band=new DefaultBandInt(ROWS, COLUMNS);
106
        MemoryBandInt band=new MemoryBandInt(ROWS, COLUMNS);
107 107
        band.fill(testValueOne);
108 108
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
109 109
    }
110 110

  
111 111
    public void testSetValue() {
112
        DefaultBandInt band=new DefaultBandInt(ROWS, COLUMNS);
112
        MemoryBandInt band=new MemoryBandInt(ROWS, COLUMNS);
113 113
        band.fill(testValueZero);
114 114
        band.setValue(ROWS-1, COLUMNS-1, testValueOne);
115 115
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
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/test/java/org/gvsig/raster/lib/buffer/impl/DefaultBandShortTest.java
36 36

  
37 37
    public void testDefaultBandShortIntInt() {
38 38
        init();
39
        Band band=new DefaultBandShort(ROWS, COLUMNS);
39
        Band band=new MemoryBandShort(ROWS, COLUMNS);
40 40
        band.fill(testValueZero);
41 41
        for (int i=0;i<band.getRows();i++){
42 42
            short[] rowBuffer = new short[COLUMNS];
......
51 51
        init();
52 52
        BufferManager bufferManager = BufferLocator.getBufferManager();
53 53
        NoData noData=bufferManager.createNoData(null, null);
54
        Band band=new DefaultBandShort(ROWS, COLUMNS,noData);
54
        Band band=new MemoryBandShort(ROWS, COLUMNS,noData);
55 55
        band.fill(testValueZero);
56 56
        for (int i=0;i<band.getRows();i++){
57 57
            short[] rowBuffer = new short[COLUMNS];
......
86 86

  
87 87
    public void testCopyFrom() {
88 88
        init();
89
        Band band=new DefaultBandShort(ROWS, COLUMNS);
89
        Band band=new MemoryBandShort(ROWS, COLUMNS);
90 90
        band.fill(testValueOne);
91 91
        try {
92 92
            band.copyFrom(testBand1);
......
103 103
    }
104 104

  
105 105
    public void testGetValue() {
106
        DefaultBandShort band=new DefaultBandShort(ROWS, COLUMNS);
106
        MemoryBandShort band=new MemoryBandShort(ROWS, COLUMNS);
107 107
        band.fill(testValueOne);
108 108
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
109 109
    }
110 110

  
111 111
    public void testSetValue() {
112
        DefaultBandShort band=new DefaultBandShort(ROWS, COLUMNS);
112
        MemoryBandShort band=new MemoryBandShort(ROWS, COLUMNS);
113 113
        band.fill(testValueZero);
114 114
        band.setValue(ROWS-1, COLUMNS-1, testValueOne);
115 115
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
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/test/java/org/gvsig/raster/lib/buffer/impl/DefaultBandByteTest.java
36 36

  
37 37
    public void testDefaultBandByteIntInt() {
38 38
        init();
39
        Band band=new DefaultBandByte(ROWS, COLUMNS);
39
        Band band=new MemoryBandByte(ROWS, COLUMNS);
40 40
        band.fill(testValueZero);
41 41
        for (int i=0;i<band.getRows();i++){
42 42
            byte[] rowBuffer = new byte[COLUMNS];
......
51 51
        init();
52 52
        BufferManager bufferManager = BufferLocator.getBufferManager();
53 53
        NoData noData=bufferManager.createNoData(null, null);
54
        Band band=new DefaultBandByte(ROWS, COLUMNS,noData);
54
        Band band=new MemoryBandByte(ROWS, COLUMNS,noData);
55 55
        band.fill(testValueZero);
56 56
        for (int i=0;i<band.getRows();i++){
57 57
            byte[] rowBuffer = new byte[COLUMNS];
......
86 86

  
87 87
    public void testCopyFrom() {
88 88
        init();
89
        Band band=new DefaultBandByte(ROWS, COLUMNS);
89
        Band band=new MemoryBandByte(ROWS, COLUMNS);
90 90
        band.fill(testValueOne);
91 91
        try {
92 92
            band.copyFrom(testBand1);
......
103 103
    }
104 104

  
105 105
    public void testGetValue() {
106
        DefaultBandByte band=new DefaultBandByte(ROWS, COLUMNS);
106
        MemoryBandByte band=new MemoryBandByte(ROWS, COLUMNS);
107 107
        band.fill(testValueOne);
108 108
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
109 109
    }
110 110

  
111 111
    public void testSetValue() {
112
        DefaultBandByte band=new DefaultBandByte(ROWS, COLUMNS);
112
        MemoryBandByte band=new MemoryBandByte(ROWS, COLUMNS);
113 113
        band.fill(testValueZero);
114 114
        band.setValue(ROWS-1, COLUMNS-1, testValueOne);
115 115
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
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/test/java/org/gvsig/raster/lib/buffer/impl/DefaultBandFloatTest.java
36 36

  
37 37
    public void testDefaultBandFloatIntInt() {
38 38
        init();
39
        Band band=new DefaultBandFloat(ROWS, COLUMNS);
39
        Band band=new MemoryBandFloat(ROWS, COLUMNS);
40 40
        band.fill(testValueZero);
41 41
        for (int i=0;i<band.getRows();i++){
42 42
            float[] rowBuffer = new float[COLUMNS];
......
51 51
        init();
52 52
        BufferManager bufferManager = BufferLocator.getBufferManager();
53 53
        NoData noData=bufferManager.createNoData(null, null);
54
        Band band=new DefaultBandFloat(ROWS, COLUMNS,noData);
54
        Band band=new MemoryBandFloat(ROWS, COLUMNS,noData);
55 55
        band.fill(testValueZero);
56 56
        for (int i=0;i<band.getRows();i++){
57 57
            float[] rowBuffer = new float[COLUMNS];
......
86 86

  
87 87
    public void testCopyFrom() {
88 88
        init();
89
        Band band=new DefaultBandFloat(ROWS, COLUMNS);
89
        Band band=new MemoryBandFloat(ROWS, COLUMNS);
90 90
        band.fill(testValueOne);
91 91
        try {
92 92
            band.copyFrom(testBand1);
......
103 103
    }
104 104

  
105 105
    public void testGetValue() {
106
        DefaultBandFloat band=new DefaultBandFloat(ROWS, COLUMNS);
106
        MemoryBandFloat band=new MemoryBandFloat(ROWS, COLUMNS);
107 107
        band.fill(testValueOne);
108 108
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
109 109
    }
110 110

  
111 111
    public void testSetValue() {
112
        DefaultBandFloat band=new DefaultBandFloat(ROWS, COLUMNS);
112
        MemoryBandFloat band=new MemoryBandFloat(ROWS, COLUMNS);
113 113
        band.fill(testValueZero);
114 114
        band.setValue(ROWS-1, COLUMNS-1, testValueOne);
115 115
        assertEquals(testValueOne, band.getValue(ROWS-1, COLUMNS-1));
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
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.Band.BandDouble;
7
import org.gvsig.raster.lib.buffer.api.BufferManager;
8
import org.gvsig.raster.lib.buffer.api.NoData;
9
import org.gvsig.raster.lib.buffer.api.BufferLocator;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class DefaultBandDouble extends AbstractBand implements BandDouble {
17

  
18
    double[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public DefaultBandDouble(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public DefaultBandDouble(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new double[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_DOUBLE;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (double) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (double) value);
70
    }
71

  
72
    double[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof DefaultBandDouble)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((DefaultBandDouble) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public double getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, double value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public double[] createRowBuffer() {
98
        return new double[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (double[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((double[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/DefaultBandInt.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandInt;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class DefaultBandInt extends AbstractBand implements BandInt {
17

  
18
    int[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public DefaultBandInt(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public DefaultBandInt(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new int[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_INT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (int) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (int) value);
70
    }
71

  
72
    int[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof DefaultBandInt)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((DefaultBandInt) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public int getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, int value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public int[] createRowBuffer() {
98
        return new int[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (int[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((int[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112
}
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/DefaultBandShort.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandShort;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class DefaultBandShort extends AbstractBand implements BandShort {
17

  
18
    short[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public DefaultBandShort(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public DefaultBandShort(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new short[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_SHORT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (short) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (short) value);
70
    }
71

  
72
    short[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof DefaultBandShort)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((DefaultBandShort) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public short getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, short value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public short[] createRowBuffer() {
98
        return new short[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (short[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((short[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/DefaultBandByte.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.Band.BandByte;
9
import org.gvsig.raster.lib.buffer.api.BufferLocator;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class DefaultBandByte extends AbstractBand implements BandByte {
17

  
18
    byte[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public DefaultBandByte(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public DefaultBandByte(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new byte[rows * columns];
37
        if(noData==null){
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_BYTE;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (byte) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (byte) value);
70
    }
71

  
72
    byte[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof DefaultBandByte)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((DefaultBandByte) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public byte getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, byte value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public byte[] createRowBuffer() {
98
        return new byte[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (byte[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((byte[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/DefaultBandFloat.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandFloat;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class DefaultBandFloat extends AbstractBand implements BandFloat {
17

  
18
    float[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public DefaultBandFloat(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public DefaultBandFloat(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new float[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_FLOAT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (float) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (float) value);
70
    }
71

  
72
    float[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof DefaultBandFloat)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((DefaultBandFloat) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public float getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, float value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public float[] createRowBuffer() {
98
        return new float[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (float[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((float[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/MemoryBandInt.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandInt;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class MemoryBandInt extends AbstractBand implements BandInt {
17

  
18
    int[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public MemoryBandInt(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public MemoryBandInt(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new int[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_INT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (int) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (int) value);
70
    }
71

  
72
    int[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof MemoryBandInt)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((MemoryBandInt) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public int getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, int value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public int[] createRowBuffer() {
98
        return new int[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (int[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((int[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112
}
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/DefaultBufferManager.java
35 35
        if (pageManager == null) {
36 36
            switch (dataType) {
37 37
            case BufferManager.TYPE_BYTE:
38
                return new DefaultBandByte(rows, columns, noData);
38
                return new MemoryBandByte(rows, columns, noData);
39 39
            case BufferManager.TYPE_USHORT:
40 40
            case BufferManager.TYPE_SHORT:
41
                return new DefaultBandShort(rows, columns, noData);
41
                return new MemoryBandShort(rows, columns, noData);
42 42
            case BufferManager.TYPE_INT:
43
                return new DefaultBandInt(rows, columns, noData);
43
                return new MemoryBandInt(rows, columns, noData);
44 44
            case BufferManager.TYPE_FLOAT:
45
                return new DefaultBandFloat(rows, columns, noData);
45
                return new MemoryBandFloat(rows, columns, noData);
46 46
            case BufferManager.TYPE_DOUBLE:
47
                return new DefaultBandDouble(rows, columns, noData);
47
                return new MemoryBandDouble(rows, columns, noData);
48 48
            default:
49 49
                throw new CreateBandTypeException(dataType);
50 50
            }
......
52 52
            switch (dataType) {
53 53
            case BufferManager.TYPE_BYTE:
54 54
                // FIXME:PaginatedBandByte....
55
                return new DefaultBandByte(rows, columns, noData);
55
                return new MemoryBandByte(rows, columns, noData);
56 56
            case BufferManager.TYPE_SHORT:
57 57
                // FIXME:
58
                return new DefaultBandShort(rows, columns, noData);
58
                return new MemoryBandShort(rows, columns, noData);
59 59
            case BufferManager.TYPE_INT:
60 60
                // FIXME:
61
                return new DefaultBandInt(rows, columns, noData);
61
                return new MemoryBandInt(rows, columns, noData);
62 62
            case BufferManager.TYPE_FLOAT:
63 63
                // FIXME:
64
                return new DefaultBandFloat(rows, columns, noData);
64
                return new MemoryBandFloat(rows, columns, noData);
65 65
            case BufferManager.TYPE_DOUBLE:
66 66
                // FIXME:
67 67
                return new PaginatedBandDouble(rows, columns, noData, (BandPageManager) pageManager);
......
73 73
            switch (dataType) {
74 74
            case BufferManager.TYPE_BYTE:
75 75
                // FIXME: TiledBandByte
76
                return new DefaultBandByte(rows, columns, noData);
76
                return new MemoryBandByte(rows, columns, noData);
77 77
            case BufferManager.TYPE_USHORT:
78 78
            case BufferManager.TYPE_SHORT:
79 79
                // FIXME:
80
                return new DefaultBandShort(rows, columns, noData);
80
                return new MemoryBandShort(rows, columns, noData);
81 81
            case BufferManager.TYPE_INT:
82 82
                // FIXME:
83
                return new DefaultBandInt(rows, columns, noData);
83
                return new MemoryBandInt(rows, columns, noData);
84 84
            case BufferManager.TYPE_FLOAT:
85 85
                // FIXME:
86
                return new DefaultBandFloat(rows, columns, noData);
86
                return new MemoryBandFloat(rows, columns, noData);
87 87
            case BufferManager.TYPE_DOUBLE:
88 88
                // FIXME:
89
                return new DefaultBandDouble(rows, columns, noData);
89
                return new MemoryBandDouble(rows, columns, noData);
90 90
            default:
91 91
                throw new CreateBandTypeException(dataType);
92 92
            }
93

  
94 93
        }
94
        return null;
95 95
    }
96 96

  
97 97
    @Override
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/MemoryBandShort.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandShort;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class MemoryBandShort extends AbstractBand implements BandShort {
17

  
18
    short[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public MemoryBandShort(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public MemoryBandShort(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new short[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_SHORT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (short) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (short) value);
70
    }
71

  
72
    short[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof MemoryBandShort)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((MemoryBandShort) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public short getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, short value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public short[] createRowBuffer() {
98
        return new short[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (short[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((short[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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
193 193

  
194 194
    @Override
195 195
    public void addBand(Band band) {
196
        
196

  
197 197
        if(band.getColumns() != this.getColumns() || band.getRows() != this.getRows()){
198 198
            throw new IllegalArgumentException(
199 199
                "Can not add band to buffer. Band must have the same rows and columns as buffer.");
200 200
        }
201
        
201

  
202 202
        this.bands.add(band);
203 203
    }
204 204

  
......
307 307
    @Override
308 308
    public Buffer convert(ICoordTrans ct, SimpleTaskStatus status) {
309 309

  
310
        for (Band band : bands) {
311
            band.convert(ct);
312

  
313
        }
310
//        for (Band band : bands) {
311
//            band.convert(ct);
312
//
313
//        }
314 314
        // TODO Auto-generated method stub
315 315
        return null;
316 316
    }
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/MemoryBandByte.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.Band.BandByte;
9
import org.gvsig.raster.lib.buffer.api.BufferLocator;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class MemoryBandByte extends AbstractBand implements BandByte {
17

  
18
    byte[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public MemoryBandByte(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public MemoryBandByte(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new byte[rows * columns];
37
        if(noData==null){
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_BYTE;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (byte) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (byte) value);
70
    }
71

  
72
    byte[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof MemoryBandByte)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((MemoryBandByte) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public byte getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, byte value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public byte[] createRowBuffer() {
98
        return new byte[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (byte[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((byte[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/MemoryBandFloat.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.BufferManager;
7
import org.gvsig.raster.lib.buffer.api.NoData;
8
import org.gvsig.raster.lib.buffer.api.BufferLocator;
9
import org.gvsig.raster.lib.buffer.api.Band.BandFloat;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class MemoryBandFloat extends AbstractBand implements BandFloat {
17

  
18
    float[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public MemoryBandFloat(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public MemoryBandFloat(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new float[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_FLOAT;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (float) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (float) value);
70
    }
71

  
72
    float[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof MemoryBandFloat)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((MemoryBandFloat) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public float getValue(int row, int column) {
88
        return data[row * getColumns() + column];
89
    }
90

  
91
    @Override
92
    public void setValue(int row, int column, float value) {
93
        data[row * getColumns() + column] = value;
94
    }
95

  
96
    @Override
97
    public float[] createRowBuffer() {
98
        return new float[getColumns()];
99
    }
100

  
101
    @Override
102
    public void fetchRow(int row, Object rowBuffer) {
103
        System.arraycopy(data, row * getColumns(), (float[]) rowBuffer, 0, getColumns());
104

  
105
    }
106

  
107
    @Override
108
    public void putRow(int row, Object rowBuffer) {
109
        System.arraycopy((float[]) rowBuffer, 0, data, row * getColumns(), getColumns());
110

  
111
    }
112

  
113
}
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/MemoryBandDouble.java
1
package org.gvsig.raster.lib.buffer.impl;
2

  
3
import java.util.Arrays;
4

  
5
import org.gvsig.raster.lib.buffer.api.Band;
6
import org.gvsig.raster.lib.buffer.api.Band.BandDouble;
7
import org.gvsig.raster.lib.buffer.api.BufferManager;
8
import org.gvsig.raster.lib.buffer.api.NoData;
9
import org.gvsig.raster.lib.buffer.api.BufferLocator;
10
import org.gvsig.raster.lib.buffer.impl.exceptions.CopyFromBandException;
11

  
12
/**
13
 * @author fdiaz
14
 *
15
 */
16
public class MemoryBandDouble extends AbstractBand implements BandDouble {
17

  
18
    double[] data;
19

  
20
    /**
21
     * @param rows
22
     * @param columns
23
     */
24
    public MemoryBandDouble(int rows, int columns) {
25
        this(rows, columns, BufferLocator.getBufferManager().createNoData(null, null));
26
    }
27

  
28
    /**
29
     * @param rows
30
     * @param columns
31
     * @param noData
32
     */
33
    public MemoryBandDouble(int rows, int columns, NoData noData) {
34
        this.rows = rows;
35
        this.columns = columns;
36
        data = new double[rows * columns];
37
        if (noData == null) {
38
            this.noData = BufferLocator.getBufferManager().createNoData(null, null);
39
        } else {
40
            this.noData = noData;
41
        }
42
    }
43

  
44
    @Override
45
    public int getDataType() {
46
        return BufferManager.TYPE_DOUBLE;
47
    }
48

  
49
    @Override
50
    public Object get(int row, int column) {
51
        return getValue(row, column);
52
    }
53

  
54
    @Override
55
    public void set(int row, int column, Object value) {
56
        setValue(row, column, (double) value);
57
    }
58

  
59
    @Override
60
    public void fill(Object value) {
61
        if (value == null) {
62
            if (getNoData().isDefined()) {
63
                value = getNoData().getValue();
64
            } else {
65
                // Do nothing, no data value is undefined
66
                return;
67
            }
68
        }
69
        Arrays.fill(data, (double) value);
70
    }
71

  
72
    double[] getData() {
73
        return data;
74
    }
75

  
76
    @Override
77
    public void copyFrom(Band source) throws CopyFromBandException {
78
        if (this.getColumns() != source.getColumns() || this.getRows() != source.getRows()
79
            || !(source instanceof MemoryBandDouble)) {
80
            throw new CopyFromBandException(source, this);
81
        }
82
        System.arraycopy(((MemoryBandDouble) source).getData(), 0, this.data, 0, this.getRows()
83
            * this.getColumns());
84
    }
85

  
86
    @Override
87
    public double getValue(int row, int column) {
88
        return data[row * getColumns() + column];
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff