org.apache.batik.ext.awt.image

Class CompositeRule

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)
Field Summary
static CompositeRuleATOP
Porter-Duff Source Atop Destination rule.
static CompositeRuleDARKEN
FeBlend Darken rule.
static CompositeRuleIN
Porter-Duff Source In Destination rule.
static CompositeRuleLIGHTEN
FeBlend Lighten rule.
static CompositeRuleMULTIPLY
FeBlend Multiply rule.
static CompositeRuleOUT
Porter-Duff Source Out Destination rule.
static CompositeRuleOVER
Porter-Duff Source Over Destination rule.
static intRULE_ARITHMETIC
Arithmatic rule 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4'.
static intRULE_ATOP
Porter-Duff src atop rule.
static intRULE_DARKEN
SVG feBlend Darken rule
static intRULE_IN
Porter-Duff src in rule.
static intRULE_LIGHTEN
SVG feBlend Lighten rule
static intRULE_MULTIPLY
SVG feBlend Multiply rule
static intRULE_OUT
Porter-Duff src out rule.
static intRULE_OVER
Porter-Duff src over rule, also used for feBlend normal.
static intRULE_SCREEN
SVG feBlend Screen rule
static intRULE_XOR
Porter-Duff src xor rule.
static CompositeRuleSCREEN
FeBlend Screen rule.
static CompositeRuleXOR
Xor rule.
Method Summary
static CompositeRuleARITHMETIC(float k1, float k2, float k3, float k4)
Factory to create artithmatic CompositeRules.
float[]getCoefficients()
intgetRule()
Returns the type of this composite rule
StringtoString()
This is called by the serialization code before it returns an unserialized object.

Field Detail

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)
 

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)
 

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
 

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)
 

MULTIPLY

public static final CompositeRule MULTIPLY
FeBlend Multiply rule.

        Cd = Cs*(1-Ad) + Cd*(1-As) + Cs*Cd
        Ad = 1 - (1-Ad)*(1-As)
 

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)
 

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)

RULE_ARITHMETIC

public static final int RULE_ARITHMETIC
Arithmatic rule 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4'.

RULE_ATOP

public static final int RULE_ATOP
Porter-Duff src atop rule.

RULE_DARKEN

public static final int RULE_DARKEN
SVG feBlend Darken rule

RULE_IN

public static final int RULE_IN
Porter-Duff src in rule.

RULE_LIGHTEN

public static final int RULE_LIGHTEN
SVG feBlend Lighten rule

RULE_MULTIPLY

public static final int RULE_MULTIPLY
SVG feBlend Multiply rule

RULE_OUT

public static final int RULE_OUT
Porter-Duff src out rule.

RULE_OVER

public static final int RULE_OVER
Porter-Duff src over rule, also used for feBlend normal.

RULE_SCREEN

public static final int RULE_SCREEN
SVG feBlend Screen rule

RULE_XOR

public static final int RULE_XOR
Porter-Duff src xor rule.

SCREEN

public static final CompositeRule SCREEN
FeBlend Screen rule.

        Cd = Cs + Cd - Cs*Cd
        Ad = 1 - (1-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)
 

Method Detail

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.

getCoefficients

public float[] getCoefficients()

getRule

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

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.
Copyright B) 2007 Apache Software Foundation. All Rights Reserved.