xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas DeWeese <Thomas.DeWe...@Kodak.com>
Subject Re: Transforms redux
Date Mon, 28 Jun 2004 11:57:42 GMT
Hi Steve,

    I'll do my best:

 > 	JSVGCanvas.ViewBoxTransform

     This is a convenience function that combines the
Root Graphics nodes 'Viewing' Transform with the Canvas
Rendering transform.

 > 	JSVGCanvas.InitialTransform

     This is currently almost always the Identity transform.
This is what the 'rendering' transform is set to when the
canvas 'resets' the Rendering Transform (i.e. original view).

 > 	JSVGCanvas.PaintingTransform

     This is the transform used to draw the offscreen bitmap
on screen.  Most of the time is the Identity transform, however
when the user is panning the document or using interactive
zoom/rotate (or the JSVGScrollPane is scrolling) this is the
transform that is updated until the interactive update is
completed at which point the change is incorporated into the
rendering transform and the document is rerendered.

 > 	JSVGCanvas.RenderingTransform

     This holds the result of all the users panning/rotating/zooming
of the document.

 > 	CanvasGraphicsNode.PositionTransform

     This holds the translate due to an SVG element's 'x'&'y'
attributes.  These need to be kept separate from the svg
element's viewBox (or viewing transform) for a proper implementation
of the 'getCTM' DOM method.

 > 	CanvasGraphicsNode.ViewingTransform

     This holds the scale/translate needed to map the
viewBox to 0,0, width,height on the SVG element.

 > 	CanvasGraphicsNode.GlobalTransform

     The transform from this element to the root of the rendering
tree.  I.E. the concatenation of this element's transform with
all of it's parent's transforms.

 > 	CanvasGraphicsNode.InverseTransform

     The result of AffineTransform.createInverse on this
element's 'transform'.

 > 	CanvasGraphicsNode.Transform

     The transform from the parent element's coordinate system
to this element's coordinate system (in the case of a CanvasGN
this is the concatenation of the position and viewing transforms).


     As far as what an application should feel free to manipulate,
The Canvas, painting and rendering transforms are totally under
application control (they should be used appropriately - use
painting for 'dynamic' transform changes and render when the change
is completed or at some application defined interval).

     You can't really touch ViewBox directly since it is computed,
and most applications probably don't want to mess with initial unless
you want a modified version of the 'initial view'.

     For Canvas these are easiest (most correctly) to controlled
with the associated DOM element attributes (viewBox, x, y, width,
height)


Steve Lamont wrote:
> The JSVGCanvas and CanvasGraphicsNode transforms are driving my bats.
> 
> The seem to get set in some fashion that's entirely baffling to me.
> 
> Can someone explain or point me to an explanation of when, where, why,
> and how the
> 
> 	JSVGCanvas.ViewBoxTransform
> 	JSVGCanvas.InitialTransform
> 	JSVGCanvas.PaintingTransform
> 	JSVGCanvas.RenderingTransform
> 
> and
> 
> 	CanvasGraphicsNode.PositionTransform
> 	CanvasGraphicsNode.ViewingTransform
> 	CanvasGraphicsNode.GlobalTransform
> 	CanvasGraphicsNode.InverseTransform
> 	CanvasGraphicsNode.Transform
> 
> are set and what control the application has over them?
> 
> 							spl
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Mime
View raw message