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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]