Mercurial > MadButterfly
view Android/java/org/madbutterfly/paint.java @ 1396:a5672125e515
Copy the transformation matrix when we clone it. It looks like the MB do not copy the matrix automatically.
Support isuse attribute to decide how to generate the tweened matrix.
author | wycc |
---|---|
date | Sat, 02 Apr 2011 05:39:26 +0800 |
parents | 2d7df44e6299 |
children |
line wrap: on
line source
package org.madbutterfly; import java.util.ArrayList; public class paint { protected int addr; redraw_man rdman; ArrayList members; public paint(redraw_man rdman, int addr) { this.addr = addr; this.rdman = rdman; members = new ArrayList(); } protected void invalid() { addr = 0; } protected void finalize() { if(addr != 0) _jni.rdman_paint_free(rdman._rdman_addr, addr); } public void stroke(shape sh) { no_stroke(sh); if(sh.fill != this) members.add(sh); sh.stroke = this; _jni.rdman_paint_stroke(rdman._rdman_addr, addr, sh.addr); } public void fill(shape sh) { no_fill(sh); if(sh.stroke != this) members.add(sh); sh.fill = this; _jni.rdman_paint_fill(rdman._rdman_addr, addr, sh.addr); } public boolean is_empty() { return members.size() == 0; } public static void no_stroke(shape sh) { int i; if(sh.stroke != null && sh.stroke != sh.fill) { i = sh.stroke.members.indexOf(sh); sh.stroke.members.remove(i); } sh.stroke = null; } public static void no_fill(shape sh) { int i; if(sh.fill != null && sh.stroke != sh.fill) { i = sh.stroke.members.indexOf(sh); sh.stroke.members.remove(i); } sh.fill = null; } }