gernotbelger@8854: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8877: * Software engineering by gernotbelger@8877: * Björnsen Beratende Ingenieure GmbH gernotbelger@8854: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8854: * gernotbelger@8854: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8854: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8854: * documentation coming with Dive4Elements River for details. gernotbelger@8854: */ gernotbelger@8854: package org.dive4elements.river.artifacts.sinfo.flowdepth; gernotbelger@8854: gernotbelger@8854: import java.util.Collection; gernotbelger@8854: gernotbelger@8915: import org.dive4elements.river.artifacts.sinfo.common.AbstractSInfoCalculationResult; gernotbelger@8894: import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; gernotbelger@8894: import org.dive4elements.river.artifacts.sinfo.util.WstInfo; gernotbelger@8894: gernotbelger@8854: import gnu.trove.TDoubleArrayList; gernotbelger@8854: gernotbelger@8854: /** gernotbelger@8854: * Contains the results of a {@link FlowDepthCalculation}. gernotbelger@8854: * gernotbelger@8854: * @author Gernot Belger gernotbelger@8854: */ gernotbelger@8915: final class FlowDepthCalculationResult extends AbstractSInfoCalculationResult { gernotbelger@8854: gernotbelger@8877: private static final long serialVersionUID = 1L; gernotbelger@8854: gernotbelger@8877: private final BedHeightInfo sounding; gernotbelger@8877: gernotbelger@8915: public FlowDepthCalculationResult(final String label, final WstInfo wst, final BedHeightInfo sounding, final boolean hasTkh, gernotbelger@8915: final Collection rows) { gernotbelger@8915: super(label, wst, hasTkh, rows); gernotbelger@8877: gernotbelger@8915: this.sounding = sounding; gernotbelger@8877: } gernotbelger@8877: gernotbelger@8877: public BedHeightInfo getSounding() { gernotbelger@8877: return this.sounding; gernotbelger@8877: } gernotbelger@8877: gernotbelger@8854: public double[][] getFlowDepthPoints() { gernotbelger@8854: gernotbelger@8915: final Collection rows = getRows(); gernotbelger@8877: gernotbelger@8915: final TDoubleArrayList xPoints = new TDoubleArrayList(rows.size()); gernotbelger@8915: final TDoubleArrayList yPoints = new TDoubleArrayList(rows.size()); gernotbelger@8915: gernotbelger@8915: for (final FlowDepthRow row : rows) { gernotbelger@8877: xPoints.add(row.getStation()); gernotbelger@8877: yPoints.add(row.getFlowDepth()); gernotbelger@8877: } gernotbelger@8877: gernotbelger@8854: return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() }; gernotbelger@8854: } gernotbelger@8884: gernotbelger@8884: public double[][] getFlowDepthTkhPoints() { gernotbelger@8884: gernotbelger@8915: final Collection rows = getRows(); gernotbelger@8884: gernotbelger@8915: final TDoubleArrayList xPoints = new TDoubleArrayList(rows.size()); gernotbelger@8915: final TDoubleArrayList yPoints = new TDoubleArrayList(rows.size()); gernotbelger@8915: gernotbelger@8915: for (final FlowDepthRow row : rows) { gernotbelger@8884: xPoints.add(row.getStation()); gernotbelger@8884: yPoints.add(row.getFlowDepthWithTkh()); gernotbelger@8884: } gernotbelger@8884: gernotbelger@8884: return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() }; gernotbelger@8884: } gernotbelger@8854: }