*/
public class DiagramSettings {
- public final Optional<Function1<Resource, Double>> vertexScaleProperty;
- public final double vertexScaleGain;
- public final double vertexScaleBias;
- public final Optional<Function1<Resource, Double>> edgeThicknessProperty;
- public final double edgeThicknessGain;
- public final double edgeThicknessBias;
public final Optional<Function1<Resource, Double>> arrowLengthProperty;
public final double arrowLengthGain;
public final double arrowLengthBias;
- public final Optional<Function1<Resource, Double>> elementColoringFunction;
- public final float elementColoringGradientHue;
- public final float elementColoringGradientSaturation;
- public final transient ColorGradient coloringGradient;
public DiagramSettings(
- Function1<Resource, Double> vertexScaleProperty, double vertexScaleGain, double vertexScaleBias,
- Function1<Resource, Double> edgeThicknessProperty, double edgeThicknessGain, double edgeThicknessBias,
- Function1<Resource, Double> arrowLengthProperty, double arrowLengthGain, double arrowLengthBias,
- Function1<Resource, Double> elementColoringFunction,
- float elementColoringGradientHue,
- float elementColoringGradientSaturation
+ Function1<Resource, Double> arrowLengthProperty, double arrowLengthGain, double arrowLengthBias
) {
- this.vertexScaleProperty = Optional.ofNullable(vertexScaleProperty);
- this.vertexScaleGain = vertexScaleGain;
- this.vertexScaleBias = vertexScaleBias;
- this.edgeThicknessProperty = Optional.ofNullable(edgeThicknessProperty);
- this.edgeThicknessGain = edgeThicknessGain;
- this.edgeThicknessBias = edgeThicknessBias;
this.arrowLengthProperty = Optional.ofNullable(arrowLengthProperty);
this.arrowLengthGain = arrowLengthGain;
this.arrowLengthBias = arrowLengthBias;
- this.elementColoringFunction = Optional.ofNullable(elementColoringFunction);
- this.elementColoringGradientHue = elementColoringGradientHue;
- this.elementColoringGradientSaturation = elementColoringGradientSaturation;
- this.coloringGradient = Colors.cached(
- Colors.hsvGradient(
- elementColoringGradientHue,
- elementColoringGradientSaturation)
- );
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + edgeThicknessProperty.hashCode();
+ //result = prime * result + edgeThicknessProperty.hashCode();
result = prime * result + arrowLengthProperty.hashCode();
- long temp;
- temp = Double.doubleToLongBits(edgeThicknessGain);
+ long temp = result;
+ //temp = Double.doubleToLongBits(edgeThicknessGain);
result = prime * result + (int) (temp ^ (temp >>> 32));
- temp = Double.doubleToLongBits(edgeThicknessBias);
+ //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));
- result = prime * result + vertexScaleProperty.hashCode();
- temp = Double.doubleToLongBits(vertexScaleGain);
- result = prime * result + (int) (temp ^ (temp >>> 32));
- temp = Double.doubleToLongBits(vertexScaleBias);
- result = prime * result + (int) (temp ^ (temp >>> 32));
- result = prime * result + elementColoringFunction.hashCode();
- result = prime * result + Float.floatToIntBits(elementColoringGradientHue);
- result = prime * result + Float.floatToIntBits(elementColoringGradientSaturation);
+
return result;
}
if (getClass() != obj.getClass())
return false;
DiagramSettings other = (DiagramSettings) obj;
- if (!edgeThicknessProperty.equals(other.edgeThicknessProperty))
- return false;
- if (Double.doubleToLongBits(edgeThicknessGain) != Double.doubleToLongBits(other.edgeThicknessGain))
- return false;
- if (Double.doubleToLongBits(edgeThicknessBias) != Double.doubleToLongBits(other.edgeThicknessBias))
- return false;
+
if (!arrowLengthProperty.equals(other.arrowLengthProperty))
return false;
if (Double.doubleToLongBits(arrowLengthGain) != Double.doubleToLongBits(other.arrowLengthGain))
return false;
if (Double.doubleToLongBits(arrowLengthBias) != Double.doubleToLongBits(other.arrowLengthBias))
return false;
- if (!vertexScaleProperty.equals(other.vertexScaleProperty))
- return false;
- if (Double.doubleToLongBits(vertexScaleGain) != Double.doubleToLongBits(other.vertexScaleGain))
- return false;
- if (Double.doubleToLongBits(vertexScaleBias) != Double.doubleToLongBits(other.vertexScaleBias))
- return false;
- if (!elementColoringFunction.equals(other.elementColoringFunction))
- return false;
- if (Float.floatToIntBits(elementColoringGradientHue) != Float.floatToIntBits(other.elementColoringGradientHue))
- return false;
- if (Float.floatToIntBits(elementColoringGradientSaturation) != Float.floatToIntBits(other.elementColoringGradientSaturation))
- return false;
+
return true;
}
@Override
public String toString() {
- return String.format("DiagramSettings[%s * %f + %f - %s * %f + %f - %s * %f + %f - coloringFunction: %s, hue: %f, saturation: %f]",
- vertexScaleProperty.toString(), vertexScaleGain, vertexScaleBias,
- edgeThicknessProperty, edgeThicknessGain, edgeThicknessBias,
- arrowLengthProperty, arrowLengthGain, arrowLengthBias,
- elementColoringFunction.toString(),
- elementColoringGradientHue, elementColoringGradientSaturation
+ return String.format("DiagramSettings[%s * %f + %f]",
+ arrowLengthProperty, arrowLengthGain, arrowLengthBias
);
}