bufferwrapperraster.java

来自「world wind java sdk 源码」· Java 代码 · 共 74 行

JAVA
74
字号
/* Copyright (C) 2001, 2008 United States Government as represented by
the Administrator of the National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.data;

import gov.nasa.worldwind.Disposable;
import gov.nasa.worldwind.cache.Cacheable;
import gov.nasa.worldwind.geom.Sector;
import gov.nasa.worldwind.util.*;

/**
 * @author dcollins
 * @version $Id: BufferWrapperRaster.java 8321 2009-01-05 17:06:14Z dcollins $
 */
public class BufferWrapperRaster extends BufferedDataRaster implements Cacheable, Disposable
{
    private BufferWrapper buffer;

    public BufferWrapperRaster(int width, int height, Sector sector, BufferWrapper buffer)
    {
        super(width, height, sector);

        if (buffer == null)
        {
            String message = Logging.getMessage("nullValue.BufferNull");
            Logging.logger().severe(message);
            throw new IllegalArgumentException(message);
        }

        int expectedValues = width * height;
        if (buffer.length() < expectedValues)
        {
            String message = Logging.getMessage("generic.BufferSize", "buffer.length() < " + expectedValues);
            Logging.logger().severe(message);
            throw new IllegalArgumentException(message);
        }

        this.buffer = buffer;
    }
    
    public BufferWrapper getBuffer()
    {
        return this.buffer;
    }

    public long getSizeInBytes()
    {
        return this.buffer.getSizeInBytes();
    }

    public void dispose()
    {
    }

    protected void get(int x, int y, int length, double[] buffer, int pos)
    {
        int index = this.indexFor(x, y);
        this.getBuffer().getDouble(index, buffer, pos, length);
    }

    protected void put(int x, int y, double[] buffer, int pos, int length)
    {
        int index = this.indexFor(x, y);
        this.getBuffer().putDouble(index, buffer, pos, length);
    }

    protected final int indexFor(int x, int y)
    {
        // Map raster coordinates to buffer coordinates.
        return x + y * this.getWidth();
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?