Class CompositeRule

java.lang.Object
io.sf.carte.echosvg.ext.awt.image.CompositeRule
All Implemented Interfaces:
Serializable

public final class CompositeRule extends Object implements Serializable
This is a typesafe enumeration of the standard Composite rules for the CompositeRable operation. (over, in, out, atop, xor, arith)
See Also:
  • Field Details

    • RULE_OVER

      public static final int RULE_OVER
      Porter-Duff src over rule, also used for feBlend normal.
      See Also:
    • RULE_IN

      public static final int RULE_IN
      Porter-Duff src in rule.
      See Also:
    • RULE_OUT

      public static final int RULE_OUT
      Porter-Duff src out rule.
      See Also:
    • RULE_ATOP

      public static final int RULE_ATOP
      Porter-Duff src atop rule.
      See Also:
    • RULE_XOR

      public static final int RULE_XOR
      Porter-Duff src xor rule.
      See Also:
    • RULE_ARITHMETIC

      public static final int RULE_ARITHMETIC
      Arithmatic rule 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4'.
      See Also:
    • RULE_MULTIPLY

      public static final int RULE_MULTIPLY
      SVG feBlend Multiply rule
      See Also:
    • RULE_SCREEN

      public static final int RULE_SCREEN
      SVG feBlend Screen rule
      See Also:
    • RULE_DARKEN

      public static final int RULE_DARKEN
      SVG feBlend Darken rule
      See Also:
    • RULE_LIGHTEN

      public static final int RULE_LIGHTEN
      SVG feBlend Lighten rule
      See Also:
    • OVER

      public static final CompositeRule OVER
      Porter-Duff Source Over Destination rule. The source is composited over the destination.
      
        Fs = 1 and Fd = (1-As), thus:
      
              Cd = Cs + Cd*(1-As)
              Ad = As + Ad*(1-As)
       
    • IN

      public static final CompositeRule IN
      Porter-Duff Source In Destination rule. The part of the source lying inside of the destination replaces the destination.
      
        Fs = Ad and Fd = 0, thus:
      
              Cd = Cs*Ad
              Ad = As*Ad
       
    • OUT

      public static final CompositeRule OUT
      Porter-Duff Source Out Destination rule. The part of the source lying outside of the destination replaces the destination.
      
        Fs = (1-Ad) and Fd = 0, thus:
      
              Cd = Cs*(1-Ad)
              Ad = As*(1-Ad)
       
    • ATOP

      public static final CompositeRule ATOP
      Porter-Duff Source Atop Destination rule. The part of the source lying inside of the destination replaces the destination, destination remains outside of source.
      
        Fs = Ad and Fd = (1-As), thus:
      
              Cd = Cs*Ad + Cd*(1-As)
              Ad = As*Ad + Ad*(1-As)
       
    • XOR

      public static final CompositeRule XOR
      Xor rule. The source and destination are Xor'ed togeather.
      
        Fs = (1-Ad) and Fd = (1-As), thus:
      
              Cd = Cs*(1-Ad) + Cd*(1-As)
              Ad = As*(1-Ad) + Ad*(1-As)
       
    • MULTIPLY

      public static final CompositeRule MULTIPLY
      FeBlend Multiply rule.
      
              Cd = Cs*(1-Ad) + Cd*(1-As) + Cs*Cd
              Ad = 1 - (1-Ad)*(1-As)
       
    • SCREEN

      public static final CompositeRule SCREEN
      FeBlend Screen rule.
      
              Cd = Cs + Cd - Cs*Cd
              Ad = 1 - (1-Ad)*(1-As)
       
    • DARKEN

      public static final CompositeRule DARKEN
      FeBlend Darken rule.
      
              Cd = Min(Cs*(1-Ad) + Cd,
                       Cd*(1-As) + Cs)
              Ad = 1 - (1-Ad)*(1-As)
       
    • LIGHTEN

      public static final CompositeRule LIGHTEN
      FeBlend Lighten rule.
      
              Cd = Max(Cs*(1-Ad) + Cd,
                       Cd*(1-As) + Cs)
              Ad = 1 - (1-Ad)*(1-As)
       
  • Method Details

    • ARITHMETIC

      public static CompositeRule ARITHMETIC(float k1, float k2, float k3, float k4)
      Factory to create artithmatic CompositeRules. 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4' Note that arithmatic CompositeRules are not singletons.
    • getRule

      public int getRule()
      Returns the type of this composite rule
    • getCoefficients

      public float[] getCoefficients()
    • toString

      public String toString()
      This is called by the serialization code before it returns an unserialized object. To provide for unicity of instances, the instance that was read is replaced by its static equivalent. See the serialiazation specification for further details on this method's logic.
      Overrides:
      toString in class Object