Hi Robert,

Thanks for looking at this. I'm sure it is an eclectic interest, but both of my 
teaching sessions with the W3C produced questions of this sort from students 
that I was moderately flumoxed and equally intrigued by.

>[...snip] And it's SVGLocatable that gives text the getBBox DOM method.

I think this is consistent with what I discovered roughly through trial and 
error. I had rather hoped I would never have to read the spec so carefully as 
to understand all that stuff that I just snipped from your reply (all that 
stuff that looks like 

interface SVGTSpanElement : SVGTextPositioningElement {
};
). 

Sigh... I knew that stuff was there in the spec for a reason; I just hoped to 
shield myself from it.

It was fascinating to see just how wildly all the browsers differed from one 
another when I tried using getBBox to measure actual characters instead of 
strings. Oh my! Either there are a lot of bugs out there or the spec is 
underspecific! I finally gave up on getBBox( ) after somewhat reluctantly 
realizing there was a reason for having getExtentOfChar  in the spec. ( I had 
glossed over that part on first reading , thinking that getBBox was a generic 
can-opener for measuring rendered content. I guess it is unless the content has 
characters inside? Are there other weird cases (other than the obvious case of 
transforms and getCTM and viewBoxes and so forth) when getBBox measures things 
that we can't see? 

>As far as text decoration is concerned I'm still waiting for a response to 
>this question to w3c: 
>http://lists.w3.org/Archives/Public/www-svg/2009Oct/0010.html The firefox bug 
>for text-decoration is https://bugzilla.mozilla.org/show_bug.cgi?id=317196


Oh good! I read your post here and it is reassuring to see that you've raised 
exactly this same issue. In the case of overline , I really hope the answer is 
to do it the way that Firefox and ASV do it rather than the way that Opera or 
webkit does it. It makes more sense to overstrike a word than to overstrike 
individual chars within the word, even if the chars have been mucked with.


>getBBox works on the entire text, getExtentOfChar works on individual glyphs.

Yes, I think I figured that out, though I think "aaa".getBBox() and 
"AAA".getBBox() might give the same outcome in some browsers and not in other, 
confusing me initially.

>getExtentOfChar
>    Returns a tightest rectangle which defines the minimum and maximum
>    X and Y values in the user coordinate system for rendering the
>    glyph(s) that correspond to the specified character. The
>    calculations assume that all glyphs occupy the full standard glyph
>    cell for the font. If multiple consecutive characters are rendered
>    inseparably (e.g., as a single glyph or a sequence of glyphs), then
>    each of the inseparable characters will return the same extent.

>The "all glyphs occupy the full standard glyph cell for the font" is the key 
>phrase here.

> Did I answer everything?

Well one more, I suppose: does this mean that since the glyph cell and the 
glyph itself may not be of the same size that we have no method to actually 
measure the glyph itself if it differs from the glyph cell? It appears that the 
letter "p" in trampoline falls into that category.

Is Firefox correct in its handling of 
http://granite.sru.edu/~ddailey/svg/tspanmeasure.svg while ASV, Opera, Chrome 
and Safari are all wrong (albeit for different reasons in each case)? It looks 
like Chrome has just a different manifestation of uncertainty about how to 
apply getExtentofChar in cases of scaled or kerned text.

What I'm trying to do here can be seen by clicking on the words in this: 
http://granite.sru.edu/~ddailey/svg/wordpuns.svg

I'll fiddle some more, I suppose.

Best
David

[Non-text portions of this message have been removed]



------------------------------------

-----
To unsubscribe send a message to: svg-developers-unsubscr...@yahoogroups.com
-or-
visit http://groups.yahoo.com/group/svg-developers and click "edit my 
membership"
----Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/svg-developers/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/svg-developers/join
    (Yahoo! ID required)

<*> To change settings via email:
    svg-developers-dig...@yahoogroups.com 
    svg-developers-fullfeatu...@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    svg-developers-unsubscr...@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to