/* * Copyright (c) 2005-2010 KOM – Multimedia Communications Lab * * This file is part of PeerfactSim.KOM. * * PeerfactSim.KOM is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * PeerfactSim.KOM 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 General Public License * along with PeerfactSim.KOM. If not, see . * */ package de.tud.kom.p2psim.impl.topology.movement.distributions; import java.util.Random; import de.tudarmstadt.maki.simonstrator.api.Randoms; public class UniformSpeedDistribution implements ISpeedDistributionProvider { private Random random = Randoms.getRandom(UniformSpeedDistribution.class); private double min; private double max; private boolean includeUpperBound = false; @Override public double getMinSpeed() { return min; } @Override public double getMaxSpeed() { return max; } @Override public double calculateSpeed() { return min + random.nextDouble() * (max - min + (includeUpperBound ? Double.MIN_VALUE : 0)); } public void setMin(double min) { this.min = min; } public void setMax(double max) { this.max = max; } public void setIncludeUpperBound(boolean bool) { this.includeUpperBound = bool; } }