Mercurial > MadButterfly
view Android/java/org/madbutterfly/paint.java @ 1395:a768d74e5f49
Fix the svg:use. For a svg:use, it is a group which include the content it reference. It means that we can not tween it to its origin object directly. Instead, we need to ungroup it and then use the result matrix to generate the tweened transformation matrix. Therefore, we need to concate its matrix to the referenced object.
Ad center object when the bbox-x is not available.
author | wycc |
---|---|
date | Sat, 02 Apr 2011 05:36:36 +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; } }