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]



Reply via email to