OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

opendocument-users message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [opendocument-users] draw:transform issues


On Thu, Jan 19, 2006 at 07:14:38PM -0800, Chris Nokleberg wrote:
> - Please specify whether the angle arguments for rotate, skewX, and
>   skewY are supposed to be in degrees or radians. OpenOffice currently
>   outputs values in radians.

Here is a list of all attributes in OpenDocument which use angles, the
units as defined by OpenDocument/SVG, and what is actually used by
OpenOffice.

  - svg:start-angle, svg:end-angle
    OpenDocument: undefined
    OpenOffice:   degrees
    SVG:          degrees

  - draw:transform
    OpenDocument: undefined
    OpenOffice:   radians

  - draw:text-rotate-angle
    OpenDocument: undefined
    OpenOffice:   degrees

  - draw:extrusion-rotation-angle
    OpenDocument: undefined
    OpenOffice:   degrees

  - draw:enhanced-path (T and U command angles)
    OpenDocument: undefined
    OpenOffice:   degrees, but sometimes shifted left by 16 bits!

  - draw:glue-point-leaving-directions
    OpenDocument: grad     
    OpenOffice:   ?

  - draw:handle-position (polar mode, first param)
    OpenDocument: grad     
    OpenOffice:   degrees

  - draw:angle (used for gradients)
    OpenDocument: undefined
    OpenOffice:   probably degrees but (always?) saved as zero

  - draw:rotation (used for hatch fills)
    OpenDocument: undefined
    OpenOffice:   probably degrees but (always?) saved as zero

  - draw:caption-angle
    OpenDocument: undefined
    OpenOffice:   ?

  - dr3d:shadow-slant
    OpenDocument: undefined
    OpenOffice:   degrees

  - dr3d:end-angle
    OpenDocument: degrees  
    OpenOffice:   ?

  - dr3d:transform (a clear 3D-analogue of draw:transform)
    OpenDocument: degrees  
    OpenOffice:   radians (?)

  - style:text-rotation-angle
    OpenDocument: degrees  
    OpenOffice:   ?

  - style:rotation-angle (spreadsheet cell)
    OpenDocument: degrees  
    OpenOffice:   degrees

The question marks are for attributes which I could not manage to
generate in OpenOffice. If anyone knows how to fill these in, please let
me know.

360 degrees = 2*PI radians = 400 grad, but even though
draw:handle-position is defined as using grad, I believe OpenOffice
actually uses degrees. I don't know how grad slipped in
there. glue-point-leaving-directions is also defined as grad, but AFAIK
OpenOffice doesn't supports that attribute.

Because degrees are used everywhere in OpenOffice, except for
draw:transform and (maybe) dr3d:transform, that seems like the obvious
unit to standardize on. It is also more user-friendly for hand-edited
documents.

Obviously the problem with specifying draw:transform rotation as degrees
is that it will break existing OpenOffice documents.

One suggestion is to add a "rotation_units" attribute to specify the
units. I think this would be more confusing than helpful, if the default
was still going to be radians. The problem is not that users really need
a way to define rotation in degrees, just that having the default unit
vary from one attribute to another is bizarre.

In general, I feel that the current number of OpenDocument documents is
negligible compared to the future number, so now is the best time to
make breaking changes. Also, IMHO OpenOffice is buggy enough that I don't
think it is a good precedent to use it in a "reference implementation"
capacity. Along these lines, the way that OpenOffice *renders* rotation
transforms is incorrect (a separate issue), so defining the unit as
degrees would not necessarily be "breaking" anything, as their documents
are already "broken". I can go into this in more depth if anyone is
interested.

I don't think that there is much cross-application sharing of
OpenDocument docs right now, so *if* OpenOffice could determine which
version a document was generated using, it could self-correct its spec
implementation bugs. I don't know if this is possible. In any case, it
might be a good idea for office suites in general to include the app
version when saving a document, to be able to handle these kind of
changes in the future.

Chris



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]