 import flash.filters.GradientBevelFilter;
 import flash.filters.GradientGlowFilter;
 
+import com.threerings.util.ArrayUtil;
 import com.threerings.util.ClassUtil;
 
 /**

        // when we have two filters of the same class, figure it out by hand...
        switch (c1) {
        case BevelFilter:
            // TODO
            return false;

        case BlurFilter:
            // TODO
            return false;

        case ColorMatrixFilter:
            // TODO
            return false;

        case ConvolutionFilter:
            // TODO
            return false;

        case DisplacementMapFilter:
            // TODO
            return false;

        case DropShadowFilter:
            // TODO
            return false;

        case GlowFilter:
            var gf1 :GlowFilter = (f1 as GlowFilter);

                (gf1.strength == gf2.strength);

        case GradientBevelFilter:
            var gbf1 :GradientBevelFilter = (f1 as GradientBevelFilter);
            var gbf2 :GradientBevelFilter = (f2 as GradientBevelFilter);
            return ArrayUtil.equals(gbf1.alphas, gbf2.alphas) && (gbf1.angle == gbf2.angle) &&
                (gbf1.blurX == gbf2.blurX) && (gbf1.blurY == gbf2.blurY) &&
                ArrayUtil.equals(gbf1.colors, gbf2.colors) && (gbf1.distance == gbf2.distance) &&
                (gbf1.knockout == gbf2.knockout) && (gbf1.quality == gbf2.quality) &&
                ArrayUtil.equals(gbf1.ratios, gbf2.ratios) && (gbf1.strength == gbf2.strength) &&
                (gbf1.type == gbf2.type);

        case GradientGlowFilter:
            var ggf1 :GradientGlowFilter = (f1 as GradientGlowFilter);
            var ggf2 :GradientGlowFilter = (f2 as GradientGlowFilter);
            return ArrayUtil.equals(ggf1.alphas, ggf2.alphas) && (ggf1.angle == ggf2.angle) &&
                (ggf1.blurX == ggf2.blurX) && (ggf1.blurY == ggf2.blurY) &&
                ArrayUtil.equals(ggf1.colors, ggf2.colors) && (ggf1.distance == ggf2.distance) &&
                (ggf1.knockout == ggf2.knockout) && (ggf1.quality == ggf2.quality) &&
                ArrayUtil.equals(ggf1.ratios, ggf2.ratios) && (ggf1.strength == ggf2.strength) &&
                (ggf1.type == ggf2.type);

        default:
            throw new ArgumentError("OMG! Unknown filter type: " + c1);
