package org.geogebra.common.geogebra3D.euclidian3D.draw; import org.geogebra.common.awt.GColor; final public class TraceSettings implements Comparable<TraceSettings> { private GColor c; private int alpha; public TraceSettings() { } public TraceSettings(GColor c, int a) { setColor(c, a); } public TraceSettings copy() { return new TraceSettings(c, alpha); } public void setColor(GColor c, int a) { this.c = c; this.alpha = a; } public GColor getColor() { return c; } public int getAlpha() { return alpha; } @Override public int compareTo(TraceSettings settings) { // compare alpha int v1 = this.alpha; int v2 = settings.alpha; if (v1 < v2) { return -1; } if (v1 > v2) { return 1; } // compare colors v1 = this.c.hashCode(); v2 = settings.c.hashCode(); if (v1 < v2) { return -1; } if (v1 > v2) { return 1; } return 0; } @Override public boolean equals(Object settings) { if (settings instanceof TraceSettings) { // compare alpha if (alpha != ((TraceSettings) settings).alpha) { return false; } // compare colors int v1 = this.c.hashCode(); int v2 = ((TraceSettings) settings).c.hashCode(); return v1 == v2; } return false; } @Override public int hashCode() { return c.hashCode(); } }