X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fprofile%2FDiagramSettings.java;h=f76a4534a59f56d77f6586b0aa34d2430442c7e4;hb=ded33522a93462a69f30ecb258df42b8d7127b22;hp=8136b19c257a37f62d47b14e751178a94cb1730e;hpb=5c496d165dd3cf2b5ca50cb5368adcf56d45e9d5;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/DiagramSettings.java b/org.simantics.district.network/src/org/simantics/district/network/profile/DiagramSettings.java index 8136b19c..f76a4534 100644 --- a/org.simantics.district.network/src/org/simantics/district/network/profile/DiagramSettings.java +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/DiagramSettings.java @@ -3,35 +3,41 @@ package org.simantics.district.network.profile; import java.util.Optional; import org.simantics.db.Resource; +import org.simantics.scl.runtime.function.Function1; /** * @author Tuukka Lehtonen */ public class DiagramSettings { - public final Optional vertexScalingProperty; - public final double vertexScalingScale; - public final Optional edgeThicknessProperty; - public final double edgeThicknessScale; + public final Optional> arrowLengthProperty; + public final double arrowLengthGain; + public final double arrowLengthBias; - public DiagramSettings(Resource vertexScalingProperty, double vertexScalingScale, Resource edgeThicknessProperty, double edgeThicknessScale) { - this.vertexScalingProperty = Optional.ofNullable(vertexScalingProperty); - this.vertexScalingScale = vertexScalingScale; - this.edgeThicknessProperty = Optional.ofNullable(edgeThicknessProperty); - this.edgeThicknessScale = edgeThicknessScale; + public DiagramSettings( + Function1 arrowLengthProperty, double arrowLengthGain, double arrowLengthBias + ) { + this.arrowLengthProperty = Optional.ofNullable(arrowLengthProperty); + this.arrowLengthGain = arrowLengthGain; + this.arrowLengthBias = arrowLengthBias; } @Override public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + edgeThicknessProperty.hashCode(); - long temp; - temp = Double.doubleToLongBits(edgeThicknessScale); + //result = prime * result + edgeThicknessProperty.hashCode(); + result = prime * result + arrowLengthProperty.hashCode(); + long temp = result; + //temp = Double.doubleToLongBits(edgeThicknessGain); result = prime * result + (int) (temp ^ (temp >>> 32)); -// result = prime * result + vertexScalingProperty.hashCode(); - temp = Double.doubleToLongBits(vertexScalingScale); + //temp = Double.doubleToLongBits(edgeThicknessBias); result = prime * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(arrowLengthGain); + result = prime * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(arrowLengthBias); + result = prime * result + (int) (temp ^ (temp >>> 32)); + return result; } @@ -44,16 +50,22 @@ public class DiagramSettings { if (getClass() != obj.getClass()) return false; DiagramSettings other = (DiagramSettings) obj; - if (!edgeThicknessProperty.equals(other.edgeThicknessProperty)) - return false; - if (Double.doubleToLongBits(edgeThicknessScale) != Double.doubleToLongBits(other.edgeThicknessScale)) + + if (!arrowLengthProperty.equals(other.arrowLengthProperty)) return false; - if (!vertexScalingProperty.equals(other.vertexScalingProperty)) + if (Double.doubleToLongBits(arrowLengthGain) != Double.doubleToLongBits(other.arrowLengthGain)) return false; - if (Double.doubleToLongBits(vertexScalingScale) != Double.doubleToLongBits(other.vertexScalingScale)) + if (Double.doubleToLongBits(arrowLengthBias) != Double.doubleToLongBits(other.arrowLengthBias)) return false; + return true; } - + @Override + public String toString() { + return String.format("DiagramSettings[%s * %f + %f]", + arrowLengthProperty, arrowLengthGain, arrowLengthBias + ); + } + }