Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/LogSQ.java @ 7284:be0e3b93144c
issue1512: FlowVelocityCalculation: Opened prepareData(), added doc.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 11 Oct 2013 10:28:07 +0200 |
parents | 1c3b2f7dc9a4 |
children | 84929f882fa2 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.model.sq; public class LogSQ extends SQ { public static final View LOG_SQ_VIEW = new View() { @Override public double getS(SQ sq) { return ((LogSQ)sq).getLogS(); } @Override public double getQ(SQ sq) { return ((LogSQ)sq).getLogQ(); } }; public static final Factory LOG_SQ_FACTORY = new Factory() { @Override public SQ createSQ(double s, double q) { return new LogSQ(s, q); } }; protected double logS; protected double logQ; protected boolean logTrans; public LogSQ() { } public LogSQ(double s, double q) { super(s, q); } /** important: We cannot process negative s/q. */ @Override public boolean isValid() { return super.isValid() && s > 0d && q > 0d; } protected void ensureLogTrans() { if (!logTrans) { logTrans = true; logS = Math.log(s); logQ = Math.log(q); } } public double getLogS() { ensureLogTrans(); return logS; } public double getLogQ() { ensureLogTrans(); return logQ; } }