1 package org.simantics.district.network.visualisations.model;
5 public class DynamicSizeMap {
8 private List<Double> sizes;
10 public DynamicSizeMap(String label, List<Double> sizes) {
15 public String getLabel() {
19 public List<Double> getSizes() {
23 public double getSize(double value, boolean useGradient, double defaultMin, double defaultMax) {
24 List<Double> sizes = getSizes();
26 double gap = defaultMax - defaultMin;
27 double singleGap = gap / sizes.size();
29 double threshold = defaultMin;
31 while (i < sizes.size() - 1) {
32 threshold = threshold + singleGap;
33 if (value <= threshold) {
39 Double size = sizes.get(i);
43 if (i + 1 != sizes.size()) {
44 upperSize = sizes.get(i + 1);
49 double delta = Math.max(value - (defaultMin + singleGap * i), 0);
50 double d = delta / singleGap;
51 double sizeDelta = (upperSize - size) * d;
53 return size + sizeDelta;