Hi Dao,

dao <dao.ho...@gmail.com> wrote on 03/07/2010 03:36:08 PM:

> mask.addEventListener("mousemove",
>   new org.w3c.dom.events.EventListener() {
[...]
>           getCanvas().push(new AttributeUpdateTask(id, "transform", 
value));

   You can change the transform attribute right here, since DOM/SVG
Events are always delivered in the UpdateManager Thread.  BE CAREFUL
however because, AWT/Swing events are _not_ delivered in the UpdateManager 

thread (they are delivered in the swing thread).


> public static Point2D convert2CanvasCoord(int screenX, int screenY, 
>                                           AbstractJSVGComponent canvas) 
>                       throws NoninvertibleTransformException {
>   Point2D doc = new Point(screenX, screenY);
>   AffineTransform tr = canvas.getViewBoxTransform(); 

   This won't work if the element (or any of it's ancestors)
have transforms associated with them.

> jonathan wood [mailto:jonathanshaww...@gmail.com] wrote:

>> Point awtPoint = ...;
>> Element myEl = document.getElementById("my-el");
>> SVGPoint svgPoint = document.getRootElement.createSVGPoint();
>> svgPoint.setX(awtPoint.getX());
>> svgPoint.setY(awtPoint.getY());
>> SVGMatrix m = ((SVGLocatable)myEl).getScreenCTM();
>> m = m.inverse();
>> svgPoint = svgPoint.matrixTransform(m);

   This code will work regardless of transforms on the parents
of the element.

Reply via email to