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

 


Help: OASIS Mailing Lists Help | MarkMail Help

cgmo-webcgm message

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


Subject: RE: [cgmo-webcgm] ISSUE: In what components is 'transform' defined?


A few thoughts after reading the transforms/segments thread...

At 09:33 AM 1/18/2008 -0800, Galt, Stuart A wrote:
>[...]
>I think that the math behind the two approaches is identical and the
>differences are in how interfaces are defined.  SVG defines a 3x3 matrix 
>with the
>bottom row hard coded to 0,0,1.

Correct, they (SVG and CGM) are mathematically equivalent, but 
parameterized differently.  And the conceptual model is described 
differently, although leading to the same mathematics.

Correct me if I'm wrong, but SVG actually parameterizes 'transform' in SVG 
content with six numbers a,b,c,d,e,f.  The *effect* of transform is 
described in terms of homogenous coordinates (x,y,w) that enables all 
transforms, including translation, to be conceptually expressed as affine 
transformations and implemented with simple 3x3 matrix arithmetic.

The same is true of CGM, which parameterizes transform as a 2x2 matrix (4 
numbers) plus a 2x1 (the other two numbers) in CGM content.  The effect can 
and should be conceptually described using homogenous coordinates and 3x3 
matrices.

>[...snip...]
>Style property or APS attribute:
>In my mind a style property is one that has an equivalent graphic
>primitive while the APS attributes in general do not have an equivalent
>graphic primitive.

The way I think of it... A Style Property is a thingy for "transient 
changes to presentation style of graphical objects."  They are creatures of 
the DOM and XCF only.  Whereas most of them have some associated similar 
graphical attribute in the metafile, it is not universal.  Intensity and 
raster intensity are Style Properties that are unique to DOM and XCF.

So it is perfectly fine (IMO) to have 'transform' as a Style Property that 
can be applied via DOM or XCF to a metafile, without 'transform' also being 
defined as part of metafile content.

OTOH, if 'transform' appears in the metafile itself, then it is not a Style 
Property.  Style Properties do not occur in the metafile.  It would be an 
ApsAttr or something else.  ApsAttrs *always* are defined as part of the 
metafile content.  See 3.2.2 in WebCGM.  They are also accessible through DOM.

So ... back to our use cases.  If we want 'transform' only to appear in DOM 
and XCF, for the use case of transient transformation of the geometry just 
during the duration of the user's viewer session (e.g., step animation), 
then Style Properties suffice.  If this is the case, we should stay far 
away from segments -- IMO they are irrelevant overhead for this use 
case.  And such a design (segment-dependent)would preclude applying the 
transformations of a 2.1 DOM implementation to 1.0 and 2.0 metafiles, as 
has been discussed.

But if we want to support use cases that dictate that 'transform' should be 
carried within the metafile, then... it will have to be instanciated as 
either an ApsAttr, or we might pick up CGM segments and segment 
transform.  Such use cases might include:
1.) ability within the metafile itself to copy a single reference instance 
of an object to multiple viewable instances, in different places and sizes 
(like COPY SEGMENT);
2.) or include in the metafile multiple instances of the canonical 
definition of an object, each with its own transform to make it appear in 
different places and sizes ('transform' ApsAttr).
3.) Or being able to record in the CGM the state of a graphical editing 
session wherein the object tree has been saved with transforms attached to 
the nodes, as opposed to saving the tree post-transform-application to get 
a transform-less object tree.

I don't know if these use cases are important enough to impose on the 
vendors to implement segments. They certainly stray from our center-line 
use cases, which are things like step animation.  (Note that Segments were 
in ATA long ago, were also in the NIST test suite IIRC, and some vendors 
did implement them then.  But not all vendors, I would suspect.)

-Lofton.

p.s  Aside:  Note that APS are supposed to be application-oriented and 
entirely non-graphical in effect, according to CGM:1999.  I.e., a viewer 
that doesn't understand WebCGM is supposed to get the same static graphical 
picture if it ignores APS.  So a 'transform' ApsAttr violates that design 
intent.  But we already crossed that line long ago with other things like 
the 'visibility' ApsAttr.




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