sclass BlurAndPosterizeSettings > MetaWithChangeListeners { settable int blur = 0; settable int colors = 64; settable RGB colorDrift = noColorDrift(); static RGB noColorDrift() { ret new RGB(0f); } BlurAndPosterizeSettings cloneMe() { ret shallowClone(this) .colorDrift(colorDrift.cloneMe()); } toString { if (eq(colorDrift, noColorDrift())) ret stdToStringWithFields(this, "blur", "colors"); else ret stdToString(this); } public bool equals(O o) { ret stdEq_nonTransient(this, o); } public int hashCoed() { ret stdHashCode_nonTransient(this); } }