/* * JGrass - Free Open Source Java GIS http://www.jgrass.org * (C) HydroloGIS - www.hydrologis.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.jgrasstools.gears.io.grasslegacy.map; /** * Class representing JGrass's internal data format. Basically a wrapper. * * @author Andrea Antonello - www.hydrologis.com */ public class JGrassRasterData implements RasterData { private double[][] data = null; /** * Create the object from an existing data matrix * * @param data */ public JGrassRasterData( double[][] data ) { this.data = data; } /** * Create a new data object initializing its values * * @param data the new memory allocation for the data * @param value init value */ public JGrassRasterData( double[][] data, double value ) { for( int i = 0; i < data.length; i++ ) { for( int j = 0; j < data[0].length; j++ ) { data[i][j] = value; } } this.data = data; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#getValueAt(int, int) */ public double getValueAt( int row, int col ) { return data[row][col]; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#getValueAt(int) */ public double getValueAt( int index ) { int row = index / data[0].length; int col = index % data[0].length; return data[row][col]; } public double getValueAt( java.awt.Point point ) { return data[point.x][point.y]; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#setValueAt(int, int) */ public void setValueAt( int row, int col, double value ) { data[row][col] = value; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#setValueAt(int) */ public void setValueAt( int index, double value ) { int row = index / data[0].length; int col = index % data[0].length; data[row][col] = value; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#getRows() */ public int getRows() { return data.length; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#getCols() */ public int getCols() { return data[0].length; } /* * (non-Javadoc) * * @see eu.hydrologis.jgrass.libs.map.RasterData#toString() */ public String toString() { StringBuffer buf = new StringBuffer(); buf.append("JGrass Raster Data Matrix: ").append("rows = ").append(data.length).append( " cols = ").append(data[0].length); return buf.toString(); } /* (non-Javadoc) * @see eu.hydrologis.jgrass.libs.map.RasterData#getRowValue(int) */ public double[] getRowValue(int row) { return data[row]; } public double[][] getData() { return data; } }