view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java @ 2197:5781847433d8

"Bezugslinienverfahren": Implemented the on-the-flys shift to (0, 0). flys-artifacts/trunk@3813 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 27 Jan 2012 17:59:24 +0000
parents ec2574eb2d32
children 672a41efe222
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import gnu.trove.TDoubleArrayList;

public class WW
extends      W
{
    protected TDoubleArrayList ws2;

    public WW() {
    }

    public WW(String name) {
        super(name);
    }

    public WW(int capacity) {
        this(capacity, "");
    }

    public WW(int capacity, String name) {
        super(capacity, name);
        ws2 = new TDoubleArrayList(capacity);
    }

    public WW(String name, double [] ws, double [] ws2) {
        this.name = name;
        this.ws  = new TDoubleArrayList(ws);
        this.ws2 = new TDoubleArrayList(ws2);
    }

    public WW(String name, TDoubleArrayList ws, TDoubleArrayList ws2) {
        this.name = name;
        this.ws  = ws;
        this.ws2 = ws2;
    }

    public void add(double w1, double w2) {
        ws .add(w1);
        ws2.add(w2);
    }

    public double getW2(int idx) {
        return ws2.getQuick(idx);
    }

    public double [] getWs2() {
        return ws2.toNativeArray();
    }

    @Override
    public double [] get(int idx) {
        return get(idx, new double[2]);
    }

    @Override
    public double [] get(int idx, double [] dst) {
        dst[0] = ws .getQuick(idx);
        dst[1] = ws2.getQuick(idx);
        return dst;
    }

    @Override
    public void removeNaNs() {
        removeNaNs(new TDoubleArrayList [] { ws, ws2 });
    }

    public WW createNormalized() {

        double minW1 = ws. min();
        double minW2 = ws2.min(); 

        int N = size();

        TDoubleArrayList ws1c = new TDoubleArrayList(N);
        TDoubleArrayList ws2c = new TDoubleArrayList(N);

        for (int i = 0; i < N; ++i) {
            ws1c.add(ws. getQuick(i) - minW1);
            ws2c.add(ws2.getQuick(i) - minW2);
        }

        return new WW(getName(), ws1c, ws2c);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org