1 package org.simantics.district.network.profile;
3 import java.util.Optional;
5 import org.simantics.db.Resource;
6 import org.simantics.scl.runtime.function.Function1;
9 * @author Tuukka Lehtonen
11 public class DiagramSettings {
13 public final Optional<Function1<Resource, Double>> vertexScaleProperty;
14 public final double vertexScaleGain;
15 public final double vertexScaleBias;
16 public final Optional<Function1<Resource, Double>> edgeThicknessProperty;
17 public final double edgeThicknessGain;
18 public final double edgeThicknessBias;
20 public DiagramSettings(Function1<Resource, Double> vertexScaleProperty, double vertexScaleGain, double vertexScaleBias, Function1<Resource, Double> edgeThicknessProperty, double edgeThicknessGain, double edgeThicknessBias) {
21 this.vertexScaleProperty = Optional.ofNullable(vertexScaleProperty);
22 this.vertexScaleGain = vertexScaleGain;
23 this.vertexScaleBias = vertexScaleBias;
24 this.edgeThicknessProperty = Optional.ofNullable(edgeThicknessProperty);
25 this.edgeThicknessGain = edgeThicknessGain;
26 this.edgeThicknessBias = edgeThicknessBias;
30 public int hashCode() {
33 result = prime * result + edgeThicknessProperty.hashCode();
35 temp = Double.doubleToLongBits(edgeThicknessGain);
36 result = prime * result + (int) (temp ^ (temp >>> 32));
37 temp = Double.doubleToLongBits(edgeThicknessBias);
38 result = prime * result + (int) (temp ^ (temp >>> 32));
39 result = prime * result + vertexScaleProperty.hashCode();
40 temp = Double.doubleToLongBits(vertexScaleGain);
41 result = prime * result + (int) (temp ^ (temp >>> 32));
42 temp = Double.doubleToLongBits(vertexScaleBias);
43 result = prime * result + (int) (temp ^ (temp >>> 32));
48 public boolean equals(Object obj) {
53 if (getClass() != obj.getClass())
55 DiagramSettings other = (DiagramSettings) obj;
56 if (!edgeThicknessProperty.equals(other.edgeThicknessProperty))
58 if (Double.doubleToLongBits(edgeThicknessGain) != Double.doubleToLongBits(other.edgeThicknessGain))
60 if (Double.doubleToLongBits(edgeThicknessBias) != Double.doubleToLongBits(other.edgeThicknessBias))
62 if (!vertexScaleProperty.equals(other.vertexScaleProperty))
64 if (Double.doubleToLongBits(vertexScaleGain) != Double.doubleToLongBits(other.vertexScaleGain))
66 if (Double.doubleToLongBits(vertexScaleBias) != Double.doubleToLongBits(other.vertexScaleBias))
72 public String toString() {
73 return String.format("DiagramSettings[%s * %f + %f - %s * %f + %f]", vertexScaleProperty.toString(),
74 vertexScaleGain, vertexScaleBias, edgeThicknessProperty, edgeThicknessGain, edgeThicknessBias);