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

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

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


Subject: [OASIS Issue Tracker] (OFFICE-4110) 19.179 draw:handle-position has wrong parameter order in case of polar handle-position


     [ https://issues.oasis-open.org/browse/OFFICE-4110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patrick Durusau updated OFFICE-4110:
------------------------------------
    Proposal: 
(Francis, shema changes are at the end)

Â
Following:

10.6.3 <draw:handle>
The <draw:handle> element represents a single interaction handle for a drawing shape

Enter:

It is either an XY-handle or a polar-handle If a draw:handle-position-x 19.nn1 attribute together with a draw:handle-position-y 19.nn2 attribute is present, it is an XY-handle. If a draw:handle-polar-pole-x 19.nn3 attribute together with a draw:handle-polar-pole-y 19.nn4 attribute is present, it is a polar-handle. Exactly one of these two pairs shall exist.

The position of an XY-handle is specified in Cartesian coordinates. The x-coordinate is specified by the draw:handle-position-x attribute, the y-coordinate is specified by the draw:handle-position-y attribute.

The position of a polar-handle is specified as tuple of radius and polar angle in a polar coordinate system. The draw:handle-polar-pole-x attribute specifies the x-coordinate and the draw:handle-polar-pole-y attribute specifies the y-coordinate of the pole of the polar coordinate system. The draw:handle-polar-radius 19.nn5 attribute specifies the radius and the draw:handle-polar-angle 19.nn6 attribute defines the polar angle of the position of the polar-handle.

The polar axis of the polar coordinate system points horizontally from the pole to the right. The polar angle is measured clockwise from the polar axis.

Note: The y-axis in the enhanced geometry of a custom shape points down. Therefore the measurement is clockwise and not counter-clockwise.

Parameters in the values of the draw:handle-position-x, draw:handle-position-y, draw:handle-polar-pole-x, draw:handle-polar-pole-y, draw:handle-polar-radius and draw:handle-polar-angle attributes use a common syntax.

A handle-parameter 


Following the table:

A handle-parameter is formally defined as
handle-parameter::= formula | modifier | constant | number 
formula::= '?' name 
modifier::= '$' integer 
constant::= 'left' | 'top' | 'right' | 'bottom' | 
'xstretch' | 'ystretch' | 'hasstroke' | 'hasfill ' | 
'width' | 'height' | 'logwidth' | 'logheight' 
number::=sign? float | sign? integer 
float::= fractional exponent? | integer exponent 
fractional::= integer? '.' integer | integer '.' 
exponent::= ( 'e' | 'E' ) sign? integer 
sign::= '+'| '-' 
integer::= [0-9]+ 
name ::= [^ ]+ 

And:


19.178 draw:handle-polar (deprecated)

Note: This attribute is deprecated in favor of the new attributes draw:handle-polar-pole-x, draw:handle-polar-pole-y, draw:handle-polar-radius and draw:handle-polar-angle due to the problematic design of the draw:handle-position attribute and mismatch between previous versions of this specification and ODF implementations.
OpenDocument 1.4 consumers shall ignore this attribute.

And:


19.179 draw:handle-position (deprecated)

Note: This attribute is deprecated in favor of the new attributes draw:handle-position-x, draw:handle-position-y, draw:handle-polar-radius and draw:handle-polar-angle due to the problematic design of this attribute and mismatch between previous versions of this specification and ODF implementations.
OpenDocument 1.4 consumers shall ignore this attribute.

And: 


19.nn1 draw:handle-position-x

The draw:handle-position-x attribute specifies the horizontal position of an XY-handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-position-x attribute is a string with the following syntax:

handle-position-x-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.

The resulting value is interpreted as x-coordinate of the position of the XY-handle.


19.nn2 draw:handle-position-y

The draw:handle-position-y attribute specifies the vertical position of an XY-handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-position-y attribute is a string with the following syntax:

handle-position-y-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.

The resulting value is interpreted as y-coordinate of the position of the XY-handle.


19.nn3 draw:handle-polar-pole-x

The draw:handle-polar-pole-x attribute specifies the horizontal position of the pole of the polar coordinate system used for a polar handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-polar-pole-x attribute is a string with the following syntax:

handle-polar-pole-x-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.
The resulting value is interpreted as x-coordinate of the pole.


19.nn4 draw:handle-polar-pole-y

The draw:handle-polar-pole-y attribute specifies the vertical position of the pole of the polar coordinate system used for a polar handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-polar-pole-y attribute is a string with the following syntax:

handle-polar-pole-y-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.

The resulting value is interpreted as y-coordinate of the pole.


19.nn5 draw:handle-polar-radius

The draw:handle-polar-radius attribute specifies the radius component of the polar coordinates of the handle position of a polar-handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-polar-radius attribute is a string with the following syntax:

handle-polar-radius-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.

The resulting value is interpreted as distance from the pole of the polar coordinate system to the position of the handle.

If the resulting value is negative, the handle position is undefined.

If the resulting value is zero, the handle position is on the pole of the polar coordinate system regardless of the value of the draw:handle-polar-angle 19.nn6 attribute.

The default value of the attribute is the string 0.


19.nn6 draw:handle-polar-angle

The draw:handle-polar-angle attribute specifies the polar angle component of the polar coordinates of the handle position of a polar handle, see <draw:handle> 10.6.3 element.

The value of the draw:handle-polar-angle attribute is a string with the following syntax:

handle-polar-angle-value ::= handle-parameter

where handle-parameter is defined in <draw:handle> 10.6.3.

The resulting value is interpreted as angle in degrees.

The default value of the attribute is the string 0.

****************************************************
Changes to Schema:

diff --git a/OpenDocument-v1.3-schema_ODF13.rng b/OpenDocument-v1.3-schema_OASIS_4110_v4.rng
index dc77c4f..30291f2 100755
--- a/OpenDocument-v1.3-schema_ODF13.rng
+++ b/OpenDocument-v1.3-schema_OASIS_4110_v4.rng
@@ -5192,6 +5192,64 @@
   </rng:define>
   <rng:define name="draw-handle-attlist">
     <rng:interleave>
+      <rng:choice>
+        <rng:group> <!-- XY-handle -->
+          <rng:attribute name="draw:handle-position-x">
+            <rng:ref name="string"/>
+          </rng:attribute>
+          <rng:attribute name="draw:handle-position-y">
+            <rng:ref name="string"/>
+          </rng:attribute>
+          <rng:optional>
+            <rng:attribute name="draw:handle-range-x-minimum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-range-x-maximum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-range-y-minimum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-range-y-maximum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+        </rng:group>
+        <rng:group> <!-- polar handle -->
+          <rng:attribute name="draw:handle-polar-pole-x">
+            <rng:ref name="string"/>
+          </rng:attribute>
+          <rng:attribute name="draw:handle-polar-pole-y">
+            <rng:ref name="string"/>
+          </rng:attribute>
+          <rng:optional>
+            <rng:attribute name="draw:handle-polar-radius">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-polar-angle">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-radius-range-minimum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+          <rng:optional>
+            <rng:attribute name="draw:handle-radius-range-maximum">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:optional>
+        </rng:group>
+      </rng:choice>
       <rng:optional>
         <rng:attribute name="draw:handle-mirror-vertical">
           <rng:ref name="boolean"/>
@@ -5207,26 +5265,9 @@
           <rng:ref name="boolean"/>
         </rng:attribute>
       </rng:optional>
-      <rng:attribute name="draw:handle-position">
-        <rng:ref name="string"/>
-      </rng:attribute>
-      <rng:optional>
-        <rng:attribute name="draw:handle-range-x-minimum">
-          <rng:ref name="string"/>
-        </rng:attribute>
-      </rng:optional>
+      <!-- The attributes draw:handle-position and draw:handle-polar are deprecated. -->
       <rng:optional>
-        <rng:attribute name="draw:handle-range-x-maximum">
-          <rng:ref name="string"/>
-        </rng:attribute>
-      </rng:optional>
-      <rng:optional>
-        <rng:attribute name="draw:handle-range-y-minimum">
-          <rng:ref name="string"/>
-        </rng:attribute>
-      </rng:optional>
-      <rng:optional>
-        <rng:attribute name="draw:handle-range-y-maximum">
+        <rng:attribute name="draw:handle-position">
           <rng:ref name="string"/>
         </rng:attribute>
       </rng:optional>
@@ -5235,16 +5276,6 @@
           <rng:ref name="string"/>
         </rng:attribute>
       </rng:optional>
-      <rng:optional>
-        <rng:attribute name="draw:handle-radius-range-minimum">
-          <rng:ref name="string"/>
-        </rng:attribute>
-      </rng:optional>
-      <rng:optional>
-        <rng:attribute name="draw:handle-radius-range-maximum">
-          <rng:ref name="string"/>
-        </rng:attribute>
-      </rng:optional>
     </rng:interleave>
   </rng:define>
   <rng:define name="draw-hatch">
Â

Â

  was:https://lists.oasis-open.org/archives/office/202211/msg00019.html


> 19.179 draw:handle-position has wrong parameter order in case of polar handle-position
> --------------------------------------------------------------------------------------
>
>                 Key: OFFICE-4110
>                 URL: https://issues.oasis-open.org/browse/OFFICE-4110
>             Project: OASIS Open Document Format for Office Applications (OpenDocument) TC
>          Issue Type: New Feature
>          Components: Graphics, Part 3 (Schema) [1.2: 1]
>    Affects Versions: ODF 1.3
>            Reporter: Regina Henschel
>            Priority: Major
>             Fix For: ODF 1.4
>
>         Attachments: ThalesFullPolar.odp, ThalesFullPolar.odt, ThalesFullPolarSwapped.odp, ThalesFullPolarSwapped.odt
>
>
> Section  19.179 draw:handle-position (below table 13) states
> "If the draw:handle-polar attribute is set, then a handle is a polar handle and the first parameter of the draw:handle-position attribute specifies the angle (as defined in 18.3.1), the handle radius is specified by the second parameter."
> But applications LibreOffice and MS Office use is the other way round. 
> Google Presentation and SoftMaker do not support non-primitive custom shapes.
> Scribus does not support handle, but renders the saved status same as MS Office and LibreOffice.
> Because there is no application, that has implemented it as specified, I suggest to treat is as editorial error. Or do you know any application? Attached is a document with shape with polar handle.



--
This message was sent by Atlassian Jira
(v8.3.3#803004)


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