Changeset 181:e11c82e90d7d in livinglogic.java.ul4

Show
Ignore:
Timestamp:
12/27/08 17:15:51 (10 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Add a lum() method to Color and support for calling it in templates.

Location:
library/src/com/livinglogic/ul4
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • library/src/com/livinglogic/ul4/Color.java

    r180 r181  
    413413    } 
    414414 
     415    public double lum() 
     416    { 
     417        int maxc = NumberUtils.max((int)r, (int)g, (int)b); 
     418        int minc = NumberUtils.min((int)r, (int)g, (int)b); 
     419 
     420        double dmaxc = maxc/255.; 
     421        double dminc = minc/255.; 
     422 
     423        return (dminc+dmaxc)/2.0; 
     424    } 
     425 
    415426    // Collection interface 
    416427    public boolean add(Object o) 
  • library/src/com/livinglogic/ul4/Main.java

    r180 r181  
    1111        Color c = new Color(0x00, 0x63, 0xa8, 0x33); 
    1212        Color b = new Color(0x00, 0x00, 0x00, 0xff); 
    13         Template tmpl = Compiler.compile("<?for c in #fc96?><?print hex(c)?>,<?end for?>"); 
     13        Template tmpl = Compiler.compile("<?print #fc9.lum()?>"); 
    1414        System.out.println(tmpl); 
    1515        long start = System.currentTimeMillis(); 
  • library/src/com/livinglogic/ul4/Opcode.java

    r180 r181  
    127127    public static final int CM0_HSV = 11; 
    128128    public static final int CM0_HSVA = 12; 
     129    public static final int CM0_LUM = 13; 
    129130 
    130131    public static final int CM1_SPLIT = 0; 
     
    433434        else if (name.equals("hsva")) 
    434435            return CM0_HSVA; 
     436        else if (name.equals("lum")) 
     437            return CM0_LUM; 
    435438        else 
    436439            throw new UnknownMethodException(name); 
  • library/src/com/livinglogic/ul4/Template.java

    r180 r181  
    12711271                                    reg[code.r1] = ((Color)reg[code.r2]).hsva(); 
    12721272                                    break; 
     1273                                case Opcode.CM0_LUM: 
     1274                                    reg[code.r1] = new Double(((Color)reg[code.r2]).lum()); 
     1275                                    break; 
    12731276                            } 
    12741277                            break; 
     
    20502053                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".hsva()"); 
    20512054                            break; 
     2055                        case Opcode.CM0_LUM: 
     2056                            code(buffer, indent, "reg" + opcode.r1 + " = reg" + opcode.r2 + ".lum()"); 
     2057                            break; 
    20522058                    } 
    20532059                    break;