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] Initial values, % sub-issue [was: Re[2]: [cgmo-webcgm] Style properties]


Hi Lofton,

Good explanations, thanks!

Ok, so I guess what's left to do, is to state what these style
properties map to in the CGM standard and verify that 100% is an
acceptable value for all of them.

background-color: maps to BACKGROUND COLOUR, 100% is ok.
character-height: maps to ?
fill-color: maps to ?
intensity: maps to ?
stroke-color: maps to ?
stroke-weight: maps to LINE WIDTH & EDGE WIDTH, 100% is ok.
text-color: maps to ?
text-font: (gone?)
raster-intensity: maps to ?

Can you fill in the blanks (or someone else for that matter)?

Regards,

-- 
 Benoit   mailto:benoit@itedo.com


Tuesday, May 17, 2005, 7:09:24 PM, Lofton wrote:

LH> Hi Benoit,

LH> In keeping with your request to break down into smaller bits, I'll focus on
LH> one specific sub-issue here.  The ISO CGM attribute model, what % means,
LH> and how that affects possible Initial Value (%) specification.  Excuse if
LH> it got long or if I'm being pedantic, but I threw in a couple examples
LH> because I sense a confusion between the CGM attribute model and a SVG-like
LH> model -- they're different.

LH> At 02:58 PM 5/17/2005 -0400, Benoit Bezaire wrote:
>>[...]
>>LH> In my opinion, the inheritance model for both the APS attributes and
>>LH> style properties are similar with one exception: style properties do
>>LH> not have an 'Initial Value'. Note: Lofton may or may not agree with
>>LH> me, I'm not sure on what we agree on yet.
>>
>>LH> They do not have an initial value that is inherent or
>>LH> explicit in the WebCGM instance (since they are not CGM attributes).
>>
>>LH> However, IMO it would be perfectly consistent to define
>>LH> "Initial value:  100%" for all of them (except text-font).  It is
>>LH> a valid value of the style property, and it essentially means,
>>LH> "per whatever is in the CGM instance" (I.e., don't change/override
>>LH> the current values of the affected CGM attributes).
>>I'm not sure it is that simple. I'm not convinced (yet) that
>>100% as initial value is fine for all of them. Another problem I see,
>>is that in CSS there's a Applies To: notion, which we don't have. I
>>don't think it is possible to define an inheritance model without
>>specifying the Applies To:.

LH> I'm going to reverse the order of your examples, because background color
LH> is something of a pathological case in CGM, and differs from the other
LH> style properties.

>>Example 2: what does it mean to have 'stroke-weight' set to 100% at
>>the Picture level when the first instance of LINEWIDTH in my CGM file
>>is one line above a LINE primitive (i.e., LINEWIDTH is not found under
>>BEGPIC or BEGPICBODY; but BEGAPSBODY;)?

LH> The ISO CGM standard makes clear that, at any point in every CGM data
LH> stream, there is a well-defined value of every CGM attribute. Even
LH> immediately after the BegPic element, every attribute has a well defined
LH> value, because the ISO CGM standard defines a default for every attribute
LH> (in clause 8).  Example:

LH> BegMet;
LH> ...
LH> BegPic;
LH> BegPicBody;
LH> line 0 0 1 1 2 2;
LH> linewidth 50;
LH> line 0 2 1 1 2 0;

LH> ISO CGM clause 8 tells me that the line width of the first line is about
LH> 32.7, which is its clause-8-determined default value (or exactly 32.767 --
LH> I'm sweeping some details under the rug here).  The line width of the
LH> second line is 50, which is explicitly set by that occurrence of the
LH> attribute.  Modify the example a little bit:

LH> BegMet;
LH> ...
LH> BegPic;
LH> BegPicBody;
LH> BegAps obj1;
LH>    BegApsBody;
LH>    line 0 0 1 1 2 2;
LH>    EndAps;
LH> BegAps obj2;
LH>    BegApsBody;
LH>    linewidth 50;
LH>    line 0 2 1 1 2 0;
LH> EndAps;

LH> The values of the line widths for the two lines are the same as 
LH> before.  This is a bit different than SVG objects, where each occurrence of
LH> a graphical primitive object (e.g., rect) implicitly has an "Initial value"
LH> (default) of all of its drawing properties attached to it, unless there is
LH> an explicit occurrence of the attribute on the element.  (CGM is a modal
LH> stream or state list model, SVG is an object model, is the way I think of it.)

LH> Now, stroke-weight affects CGM line width and CGM edge width. However, it
LH> can only be applied to APSs.  Conceptually, I think of it as being applied
LH> to the BegAps, and then affects everything in that APS, **until the
LH> matching EndAps**.  Because of the "until matching EndAps", this 
LH> stroke-weight style property behaves differently than CGM attributes.  It
LH> affects everything within the APS, but does not persist beyond the end of
LH> the APS.

LH> As I understand our intention, % value of the WebCGM DOM style property
LH> stroke-weight is applied as follows, where lw is the current value of line
LH> width and lw' is the new value:
LH> lw' = sw * lw
LH> ew' = sw * ew

LH> So suppose we were to define that every APS in the metafile has a 
LH> stroke-weight Initial Value of 100%.  Then every line-width and every
LH> edge-width in the CGM is exactly ... unchanged from what ISO CGM standard
LH> says it should be.

LH> In the example above, the first line thus has line-width 32.7 and the
LH> second has line-width 50.  Suppose the DOM now sets stroke-weight to 200%
LH> for obj1.  The the first line width is 65.4 and the second is still 50.

>>Does WebCGM clearly define on what LINEWIDTH applies to and where can
>>it legally be specified in the CGM file?

LH> Not WebCGM itself, but the ISO CGM standard of which WebCGM is a 
LH> profile.  Yes, ISO CGM clearly defines to what elements LINE WIDTH applies
LH> (the dozen or so "line" graphical primitives), where LINE WIDTH elements
LH> can occur (anywhere in the Picture Body outside of APS, or in an APS body
LH> within APS), and what is the value of every CGM attribute immediately after
LH> the BEGIN PICTURE element.  WebCGM adheres to the ISO CGM rules.

>>Example 1: what does it mean to have 'background-color' set to 100%?
>>What does this map to in CGM? And does it have an implied value?

LH> This case is a little more pathological than all the other style 
LH> properties.  Skip if you like, but in brief...

LH> CGM has a BACKGROUND COLOUR element, that applies at the whole-picture
LH> level (cannot change within pictures).  Sweeping aside some details, at the
LH> processing of the BEGIN PICTURE element the background color of the picture
LH> is well-defined.  The WebCGM DOM style property background-color of 100%
LH> would mean -- the background color of the picture, as determined by ISO CGM
LH> rules, is unchanged.  If the value were 50%, well ... apply the 
LH> fade-towards-white computation that the spec defines.

LH> All for now,
LH> -Lofton.




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