IRC log of svg on 2012-09-19

Timestamps are in UTC.

01:16:15 [jet]
jet has joined #svg
01:44:42 [thorton]
thorton has joined #svg
02:41:50 [glenn]
glenn has joined #svg
03:18:54 [glenn]
glenn has joined #svg
05:10:53 [Tav]
Tav has joined #svg
06:27:15 [birtles]
birtles has joined #svg
06:32:03 [konno]
konno has joined #svg
06:32:25 [cabanier]
cabanier has joined #svg
06:35:26 [Tav]
Tav has joined #svg
06:36:29 [heycam]
trackbot, start telcon
06:36:31 [trackbot]
RRSAgent, make logs public
06:36:31 [Zakim]
Zakim has joined #svg
06:36:33 [heycam]
Chair: Cameron
06:36:33 [trackbot]
Zakim, this will be GA_SVGWG
06:36:33 [Zakim]
I do not see a conference matching that name scheduled within the next hour, trackbot
06:36:34 [trackbot]
Meeting: SVG Working Group Teleconference
06:36:35 [trackbot]
Date: 19 September 2012
06:36:46 [heycam]
Agenda: http://www.w3.org/Graphics/SVG/WG/wiki/F2F/SVGOpen_2012/Agenda
06:39:02 [stakagi]
stakagi has joined #svg
06:39:06 [Cyril]
Cyril has joined #svg
06:39:14 [TabAtkins]
TabAtkins has joined #svg
06:39:57 [nikos]
nikos has joined #svg
06:40:03 [nikos]
scribenick: nikos
06:40:38 [nikos]
Topic: radialGradient @fr
06:41:02 [nikos]
ed: I have a couple of questions about the spec
06:41:15 [nikos]
... 1: is fr allowed to be negative?
06:41:19 [nikos]
... I think the thread decided no
06:41:29 [nikos]
2: should the focal point be constrained to be in the circle?
06:41:35 [nikos]
... do we want to be fully compatible with canvas or not?
06:41:44 [nikos]
TabAtkins: I think Canvas behaviour is bad
06:41:51 [nikos]
... whatever we do here I'd like to do it there too
06:42:10 [nikos]
cabanier: in Canvas you get a cone if drawing outside
06:42:35 [nikos]
TabAtkins: that behaviour doesn't make sense - there's a discontinuity in the behaviour for no good reason
06:43:24 [nikos]
heycam: would you ever want that effect?
06:43:27 [nikos]
TabAtkins: I don't think so
06:43:49 [andreas]
andreas has joined #svg
06:44:12 [nikos]
cabanier: all implementations come from PDF
06:44:38 [nikos]
cabanier: I think you should match what most people do
06:44:52 [nikos]
... you should do it in CSS as well
06:45:10 [nikos]
TabAtkins: it'
06:45:17 [nikos]
... s not good behaviour
06:46:04 [nikos]
cabanier: so how would you define radial gradients?
06:46:11 [nikos]
TabAtkins: I think the last colour should extend outside the plane
06:46:24 [nikos]
... or restrict them to clamp
06:46:33 [nikos]
cabanier: I think SVG should match Canvas
06:46:38 [nikos]
heycam: we do clamp right?
06:46:41 [nikos]
ed: yes
06:47:00 [nikos]
TabAtkins: radial gradients are too complex for CSS
06:47:08 [nikos]
... so what is ill defined about the clamping right now?
06:47:18 [TabAtkins]
s/radial gradients/mesh gradients/
06:48:01 [nikos]
TabAtkins: I don't think authors want it to extend, so I think it's better that we clamp
06:48:21 [nikos]
ed: a secondary issue - what happens if the radius cuts through the circle
06:48:51 [nikos]
TabAtkins: project out where the focal point would be. The definition should be in terms of the focal point and the fill shape
06:49:11 [nikos]
... which behaviour do we want? turn it into a cone or clamp?
06:49:31 [ed]
s/radius cuts through the circle/focal circle radius cuts through the other circle/
06:49:40 [nikos]
cabanier: I think it should match what everybody else is doing
06:50:33 [nikos]
ed: even if we wanted to have canvas behaviour we have to keep old behaviour when it's exactly on the circle
06:50:38 [nikos]
... so we don't break old content
06:51:42 [heycam]
http://jaspervdg.wordpress.com/2012/09/03/specifying-radial-gradients/
06:54:37 [nikos]
heycam: I'm leaning towards allowing it outside the circle
06:56:05 [nikos]
TabAtkins: I'm not a fan of the cone effect
06:56:13 [nikos]
cabanier: I agree, but I think consistency is important
06:56:52 [nikos]
heycam: what happens when you put the focal point on the edge in Canvas?
06:57:12 [nikos]
cabanier: they don't have repeat so it's not a problem
06:57:35 [nikos]
ed: I think I agree that consistency with Canvas is important
06:58:45 [nikos]
Resolution: SVG radial gradients will align with Canvas for behaviour where the focal point is outside the circle
06:59:06 [nikos]
ed: for the case where it's exactly on the circle we are going to keep the old clamping behaviour for backwards compatibility?
06:59:21 [nikos]
... when the focal point is exactly on the circle
06:59:38 [nikos]
Tav: what colour space do you do the averaging in ?
06:59:48 [nikos]
TabAtkins: CSS takes the easy answer and converts to sRGBA
07:00:09 [nikos]
Tav: optically you would want to use linear
07:00:42 [nikos]
cabanier: the gradient doesn't interpolate linearly
07:00:59 [nikos]
TabAtkins: the averaging should be in the same colour space as the rest
07:01:48 [nikos]
... I think to get correct colours you average in the same colour space as you interpolate
07:03:37 [TabAtkins__]
TabAtkins__ has joined #svg
07:03:42 [TabAtkins__]
http://dev.w3.org/csswg/css3-images/#find-the-average-color-of-a-gradient
07:05:02 [nikos]
Action: Tav to specify radial gradient behaviour when the focal point is outside the circle
07:05:02 [trackbot]
Created ACTION-3374 - Specify radial gradient behaviour when the focal point is outside the circle [on Tavmjong Bah - due 2012-09-26].
07:05:16 [nikos]
Topic: Mesh Gradients
07:05:36 [Tav]
http://tavmjong.free.fr/SVG/SVGOpen2012/ARTISTS/svg_2012_artists.svg#36_0
07:06:56 [nikos]
Tav: The basic issue with the gradients right now is how to handle non-smooth transitions between boundaries
07:06:58 [nikos]
... they cause banding
07:07:12 [nikos]
... that point of the transition looks brighter
07:07:26 [nikos]
... Adobe and Corel draw handle this by doing smoothing that's hidden from the user
07:07:34 [nikos]
... it gets exported as 8x8 patches in the PDF
07:07:42 [nikos]
... we could do what they do, but that would end with lots of patches
07:07:46 [nikos]
... or we try some kind of smoothing
07:08:09 [nikos]
... either automatic smoothing or we allow a more complex syntax that allows colours to be set at points on the handles or tensor points
07:08:20 [nikos]
heycam: is it like specifying easing?
07:09:07 [nikos]
Cyril: if you have two patches next to each other and you specify the colour derivatives at the shared points, then you have a continuous derivative and no banding
07:09:15 [nikos]
Tav drawing on board
07:09:37 [nikos]
Tav: If you have two patches, you want to smooth the join
07:10:16 [nikos]
... what I did is use auto smoothing by looking at the slope and use that to construct a curve
07:10:31 [nikos]
Cyril: the problem with that is the rendering of patches is not isolated
07:12:23 [nikos]
Tav: You could define colours at the control points and add tensor points
07:12:35 [nikos]
Cyril: generally that's not what people do, the colour is separate from the geometry
07:13:01 [nikos]
shepazu: If you're trying to do patches you are probably trying to match them to a geometric shape - in most uses
07:13:41 [nikos]
Cyril drawing on board
07:14:26 [nikos]
Cyril: typically a coon's patch is something where you start with a unit square, with parameters u and v. You have a colour aspect where you have 4 colours on the corners, you have a bilinear interpolation inside
07:14:47 [nikos]
... then you have a transformation, from u &v you get x & y on one side and a colour value on the other side
07:15:51 [nikos]
... what you are proposing is the difference between coon's patches and tensor patches
07:15:57 [nikos]
... there is also a ferguson patch
07:16:11 [nikos]
... from simplest to more complex - coons, tensor and then ferguson
07:16:27 [victor]
victor has joined #svg
07:16:41 [nikos]
... what you are proposing is something like what PDF does with tensor patches but in the colour dimension and not the geometric dimensions
07:18:38 [nikos]
Tav: in 1 dimension, you interpolate the colours using a bezier
07:19:00 [nikos]
Cyril: I don't think that is a simple transition to 2 dimensions
07:20:08 [nikos]
Cyril: I would need to think about it
07:20:31 [nikos]
Tav: I am always proposing to have the extra points at 1/3rd and 2/3rd
07:20:47 [nikos]
TabAtkins__: I'm ok as long as there's an automatic way to do the interpolation
07:21:18 [nikos]
heycam: Are you describing extra things the author has to specify?
07:21:30 [nikos]
Tav: yes. Or if it's not specified you get the linear interpolation
07:21:58 [nikos]
heycam: I would like a boolean that enables a way for us to specify the method of smoothing
07:22:12 [nikos]
shepazu: I'd like to see this proposal in terms of a syntax
07:22:20 [nikos]
Tav: for auto smoothing it would simply be a flag
07:22:47 [Cyril_]
Cyril_ has joined #svg
07:22:55 [nikos]
Tav: I have a proposal syntax
07:23:19 [nikos]
... I think we really need the tensor points as they allow you to draw how the colours spread inside and helps to remove some of the banding effects
07:23:40 [nikos]
... <mesh><meshrow><meshpatch><stops>
07:24:08 [Cyril_]
Cyril_ has joined #svg
07:24:22 [nikos]
... when defining tensor points, you could replace that with an array of rows by columns with a colour array as well
07:25:27 [nikos]
Tav: one mesh consists of 16 points. These points could be described in an array of points.
07:26:08 [nikos]
shepazu: I don't know if that's simpler
07:26:18 [Cyril__]
Cyril__ has joined #svg
07:26:52 [nikos]
Tav: The points and handles defining the patch map into the array
07:27:46 [nikos]
Tav: if you are going to add the tensor points inside the patch, you cannot define them using the path syntax
07:28:54 [nikos]
Tav: slide 33 has an example syntax
07:34:10 [nikos]
shepazu: I'd like to see real world examples of how this is used and how many patches are needed
07:34:13 [nikos]
Cyril: it's heavily used
07:35:02 [nikos]
... requires many many patches to make an image
07:35:07 [nikos]
shepazu: is this a good use for SVG?
07:35:26 [nikos]
TabAtkins__: it's a very good use for an SVG viewer
07:38:23 [nikos]
shepazu: is this something you could see being added CSS?
07:38:36 [Cyril]
rrsagent, pointer?
07:38:36 [RRSAgent]
See http://www.w3.org/2012/09/19-svg-irc#T07-38-36
07:38:46 [nikos]
TabAtkins__: no.
07:39:20 [TabAtkins]
TabAtkins has joined #svg
07:40:23 [nikos]
shepazu: what we want is output that is consistent with the author's view in illustrator and inkscape
07:40:45 [nikos]
heycam: I'd like to avoid having the subdivision in the SVG
07:41:05 [shepazu]
s/output/browser output/
07:42:21 [nikos]
shepazu: This is unique and attention grabbing which are good criteria for inclusion in SVG
07:42:52 [nikos]
TabAtkins: is this a paint server or just geometry?
07:43:08 [nikos]
Tav: we decided if it's in the defs section it's a paint server, if it's not then it's geometry
07:43:16 [nikos]
... you need to be able to clip if it's a paint server
07:44:36 [nikos]
Resolution: SVG mesh gradients should have a method for enabling smoothing and smoothing should be default behaviour
07:44:58 [shepazu]
s/This is unique and attention grabbing which are good criteria for inclusion in SVG/This seems like something that 1) can't be done elsewhere in the web platform 2) couldn't be done in CSS (needs markup) and 3) will meet the real-world needs of authors, which are good criteria for inclusion in SVG 2/
07:45:22 [nikos]
Action: Rik to find out what method Adobe uses for smoothing mesh gradients and report to group
07:45:22 [trackbot]
Created ACTION-3375 - Find out what method Adobe uses for smoothing mesh gradients and report to group [on Rik Cabanier - due 2012-09-26].
07:46:08 [nikos]
cabanier: if the patches are not hand editable then why not just make them really compact
07:46:34 [nikos]
shepazu: even if they're not hand editable they still need to be animatable
07:47:36 [nikos]
ed: One of my main concerns is a lot of details are missing from the spec at the moment
07:47:39 [nikos]
Tav: they will be added
07:48:07 [nikos]
ed: I'd like references to the algorithms used - they should be in the spec
07:48:21 [nikos]
Cyril: I'm not sure all the algorithms are royalty free
07:48:39 [nikos]
... at least one has a patent
07:49:05 [nikos]
... I think we won't be mandating a specific algorithm
07:49:17 [nikos]
TabAtkins: that's right, you require a certain output
07:49:33 [nikos]
... it just has to be black box compatible
07:50:59 [nikos]
ed: My other point is about hand authoring - it doesn't seem to be really possible
07:51:26 [nikos]
... if we were to have a simplified syntax that wouldn't give the same accuracy but gives something that could be manipulated would be useful
07:52:21 [ed]
s/that wouldn't give/that (perhaps) wouldn't provide
07:52:48 [nikos]
shepazu: so it's common for people to use multiple meshes to create an object
07:52:51 [nikos]
... what's the bounding box?
07:53:05 [nikos]
TabAtkins: if it's geometry then the bounding box is the edges
07:53:18 [nikos]
cabanier: they fold over themselves
07:53:34 [nikos]
TabAtkins: that would be as if any path folds over itself
07:54:02 [nikos]
shepazu: this is different to SVG in some ways - normally in SVG you have a shape which is the geometry and it might be affected by properties
07:54:11 [nikos]
... then you fill it with some other thing that doesn't have geometery/size
07:54:31 [nikos]
cabanier: well we resolved that now radial gradients will have a boundary
07:54:38 [nikos]
shepazu: but you can't use getBBox on it
07:55:04 [nikos]
heycam: I think doug is saying it can be a mesh object as well as a paint server
07:55:22 [nikos]
shepazu: under what circumstances would you use it as a paint server?
07:55:32 [andreas]
andreas has joined #svg
07:55:54 [nikos]
... I don't think it is the primary purpose
07:56:52 [nikos]
shepazu: we have talked several times about integrating canvas and svg and having a similar path model
07:57:00 [nikos]
... now we are introducing a new element where you can't do that path stuff
07:57:09 [nikos]
... for the pepper, I might want to just get the outline
07:57:12 [nikos]
Cyril: you can
07:58:08 [nikos]
cabanier: what about when it folds over itself?
07:58:15 [nikos]
... the outline may not be the outermost path
07:58:44 [nikos]
heycam: if we had this method on circles, etc then it should work on the patch geometry as well
07:59:09 [nikos]
Cyril: if a patch overlaps itself the path would also, that's fine
08:00:31 [nikos]
shepazu: if I had line art and I want to colour it using mesh gradients how would I do that?
08:01:13 [nikos]
TabAtkins: you would use a paint server to contain the colour, the patches wouldn't match the geometry
08:01:22 [jet]
jet has joined #svg
08:01:24 [nikos]
... effectively, you would need to trace over the line art
08:01:41 [nikos]
shepazu: I think this has path like characteristics so it should have path like powers
08:02:52 [nikos]
Tav: I talked to the NVidia guy about HW acceleration and he said no problem.
08:02:55 [nikos]
Cyril: it's very simple
08:04:42 [victor]
victor has left #svg
08:06:14 [nikos]
Cyril: When we selected Coon's patches, we also considered triangle patches.
08:06:23 [nikos]
... the more I read about vectorisation, the more I see this being used
08:07:13 [nikos]
... I am suggesting we add the triangular representation for meshes to SVG
08:07:36 [nikos]
heycam: is it wasteful to do the triangles using bezier paths?
08:07:43 [nikos]
Cyril: I would have to investigate but I suspect so
08:07:56 [nikos]
shepazu: Cyril, could you come up with a concrete proposal that shows syntax and outputs
08:08:34 [nikos]
Action: Cyril to write up a proposal for a triangular representation for gradient meshes
08:08:34 [trackbot]
Created ACTION-3376 - Write up a proposal for a triangular representation for gradient meshes [on Cyril Concolato - due 2012-09-26].
08:09:16 [nikos]
Topic: GetSVGDocument deprecation/removal
08:09:31 [nikos]
Topic: SVGDocument interface (alias to Document?)
08:09:49 [nikos]
ed: this is a bout merging all the interfaces of SVGDocument onto document
08:09:55 [nikos]
... this is the direction HTML is going
08:10:26 [nikos]
... we would want a minimal representation for backwards compatibility
08:10:43 [nikos]
shepazu: what is the syntax in HTML5
08:10:49 [ed]
http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document
08:10:59 [nikos]
TabAtkins: HTMLDocument is an alias for document
08:11:49 [nikos]
heycam: if you create a document, the type is defined by the root element, it can't change mid-life so whatever functionality for SVGDocument and HTMLDocument should be available on all documents
08:12:47 [nikos]
shepazu: in HTML, when you try to get forms and there are no forms, would the result be different in SVG compared to a HTML doc that has no forms
08:12:59 [nikos]
heycam: document.forms would be a HTML collection object with length zero
08:13:29 [nikos]
heycam: HTML collection is named HTML collection but it's really just a collection of any element
08:13:42 [nikos]
shepazu: what difference would this make to authors?
08:14:59 [nikos]
heycam: the difference will be additional properties
08:15:55 [nikos]
shepazu: we can remove details from our specification and refer to HTML5
08:16:30 [nikos]
... I'm in favour of this, we can special case things as we find them
08:16:51 [nikos]
TabAtkins: i.e. SVG links are returned as well as HTML links
08:17:47 [nikos]
heycam: we need to discuss the alias
08:18:03 [nikos]
... firstly in the IDL it becomes a partial interface for document
08:18:33 [nikos]
... the aliasing of the interface, presumably HTML does that for HTMLDocument
08:19:30 [nikos]
TabAtkins: it just aliases to document. We would use the same line in SVG
08:19:40 [TabAtkins]
"For historical reasons, Window objects must also have a writable, configurable, non-enumerable property named HTMLDocument whose value is the Document interface object."
08:19:55 [nikos]
heycam: we will do the same thing
08:20:14 [nikos]
Resolution: SVGDocument will be an alias for document
08:20:29 [nikos]
Action: ed make SVGDocument into an alias for document
08:20:30 [trackbot]
Created ACTION-3377 - Make SVGDocument into an alias for document [on Erik Dahlström - due 2012-09-26].
08:20:54 [nikos]
Topic: XLink deprecation
08:21:05 [nikos]
heycam: We might have already decided on this
08:21:23 [nikos]
... whether all attributes become href or whether some become source and some become href
08:21:37 [nikos]
TabAtkins: I think they should be whatever they all are right now
08:21:43 [nikos]
... we shouldn't change it, just drop the xlink prefix
08:22:19 [nikos]
... I think we should align script
08:22:47 [nikos]
heycam: there are quite a number of elements that have xlink:href
08:23:02 [nikos]
shepazu: the idea was that we use xlink:href for any external resource
08:23:10 [nikos]
... I don't mind if you can use href or src
08:23:35 [nikos]
... we are going to have to xlink:href and href so we might as well allow src too
08:23:48 [heycam]
https://svgwg.org/svg2-draft/attindex.html
08:23:56 [nikos]
list of things that use xlink:href
08:24:43 [nikos]
a - makes sense
08:25:00 [nikos]
alt-glyph is a reference to an element so should be href
08:25:09 [nikos]
animate elements - makes sense
08:25:21 [nikos]
color-profile - being removed
08:25:42 [nikos]
cursor - represents an external image so could be src, but cursor is probably not similar to anything in HTML so can be left as href
08:26:14 [nikos]
image - should allow src
08:26:37 [nikos]
TabAtkins: the ones I'm concerned about are image and script
08:28:25 [nikos]
shepazu: with image, it behaves differently in SVG than in HTML, so they don't have to align
08:28:32 [nikos]
TabAtkins: script is the one I feel really strongly about
08:30:05 [nikos]
... I might want script to accept 3 attributes, if there are not strong objections
08:30:22 [nikos]
shepazu: we resolved that href overrides xlink:href
08:30:37 [nikos]
... but there's more to it - i.e. how it is represented in the DOM
08:30:41 [ed]
http://www.w3.org/Graphics/SVG/WG/wiki/Href
08:31:11 [nikos]
heycam: I like allowing src for script
08:31:39 [nikos]
shepazu: users expect src
08:31:44 [nikos]
s/users/authors
08:31:57 [nikos]
heycam: I propose that src overrides everything
08:32:10 [nikos]
TabAtkins: I'd put src between href and xlink:href
08:32:17 [nikos]
heycam: I'd like to encourage src
08:32:19 [nikos]
shepazu: me too
08:34:40 [nikos]
heycam: set always sets 'src' and 'get' gets the attribute that exists with the highest precedence.
08:34:59 [nikos]
shepazu: this makes me reconsider image, why are we doing src in some things and not src in others?
08:35:13 [nikos]
... we could align on src but say there's a couple of quirks with SVG image.
08:35:40 [nikos]
... so anywhere that HTML has a general kind of element that uses src instead of href, SVG will also allow src and it will be the default
08:36:12 [nikos]
heycam: feImage should remain href because it can point to trees
08:36:34 [nikos]
TabAtkins: I'd like to stay doing what we currently do unless aligning with HTML
08:37:08 [nikos]
heycam: all the remaining elements in the list are href
08:37:48 [nikos]
... one final issue - on image the href DOM property is an animated string
08:38:35 [Zakim]
Zakim has left #svg
08:39:10 [nikos]
... we should make .src be a DOM string that just reflects the base value, not the animated value
08:45:00 [nikos]
TabAtkins: There's 3 things
08:45:09 [nikos]
... firstly the xlink:href gain a plain href
08:45:18 [nikos]
... secondly, script and image gain a src attribute
08:45:48 [nikos]
thirdly, when getting from any, you get the highest precedence (src -> href -> xlink:href), when setting you set the highest that is available
08:46:46 [nikos]
Resolution: We will allow href on all elements that have xlink:href and allow src on image and script. With details as in the minutes.
08:47:07 [nikos]
Action: Cameron to add href on all elements with xlink:href and add src to image and script
08:47:07 [trackbot]
Created ACTION-3378 - Add href on all elements with xlink:href and add src to image and script [on Cameron McCormack - due 2012-09-26].
08:56:13 [andreas]
andreas has joined #svg
09:27:42 [Cyril]
scribeNick: Cyril
09:27:51 [Cyril]
Topic: Cameron's stuff
09:28:21 [Cyril]
heycam: we have previously described ways of determining whether pointer-events were within the stroke region or the fill region or hte marker
09:28:36 [Cyril]
... we settled on a method to tell you which region was hit
09:28:40 [Cyril]
... I have done that
09:28:43 [Cyril]
... it's in the spec
09:28:52 [Cyril]
http://lists.w3.org/Archives/Public/public-svg-wg/2012JulSep/0194.html
09:28:55 [heycam]
https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement
09:29:12 [Cyril]
... I took upon myself to add a new interface
09:29:22 [Cyril]
... on elements that can be filled and stroke
09:29:28 [Cyril]
... there are 2 methods:
09:29:32 [Cyril]
isPointInFill
09:29:35 [Cyril]
isPointInStroke
09:29:50 [Cyril]
... initially it is taking a Point object in user space
09:30:26 [Cyril]
... because often you will have a mouse event and you want to take the coordintes of hte mouseevent and translate them into the user space
09:31:04 [Cyril]
... that's a separate thing that's handy to do
09:31:16 [Cyril]
... oh, I forgot to make that change
09:31:34 [Cyril]
... SVGPoint should have a constructor that takes an element and a mouse event
09:31:47 [Cyril]
... if the element is not provided, it is assumed to be the target of the event
09:32:12 [Cyril]
... I had the conversion integrated but this is cleaner this way
09:32:22 [Cyril]
... I also worked on markers
09:32:37 [Cyril]
... there is a separate interface
09:32:46 [heycam]
https://svgwg.org/svg2-draft/painting.html#InterfaceSVGMarkableElement
09:33:16 [Cyril]
... it's implemented on elements that can have markers on
09:33:36 [Cyril]
... rahter than having a method is point in markers, which doesn't tell you whjich marker is used
09:33:40 [Cyril]
... it uses a marker index
09:34:03 [Cyril]
... this covers the automatic marker and the children marker
09:34:29 [cabanier]
scribenick: cabanier
09:34:51 [Cyril]
scribeNick: Cyril
09:35:03 [Cyril]
... in the same order as the rendering order
09:35:25 [Cyril]
first the automatic ones and then the positioned ones
09:35:43 [Cyril]
... SVGMarkerList gives you a list of marker instances
09:35:49 [heycam]
https://svgwg.org/svg2-draft/painting.html#InterfaceSVGMarkerInstance
09:36:02 [Cyril]
... giving you the marker, its position ...
09:37:18 [Cyril]
... as a length along the path
09:37:24 [Cyril]
... the actual point that it's at and the angle
09:37:40 [Cyril]
andreas: can you get the segment it's on?
09:37:49 [Cyril]
heycam: there is a method for that in PathSegment
09:38:07 [Cyril]
... in fact angle and point are not strictly needed, but they are convenient
09:38:24 [Cyril]
rik; can you change hte marker that you get?
09:38:35 [Cyril]
heycam: yes, you can change the definition
09:38:59 [Cyril]
andreas: sometimes you want to highlight hte marker that is selected
09:39:19 [Cyril]
heycam: that would be difficult for the automatic markers, because you can't change just one
09:39:27 [birtles]
(the method for getting the segment is SVGPathElement.getPathSegAtLength)
09:39:28 [Cyril]
... you probably need to use child markers
09:40:31 [Cyril]
tab: I agree
09:41:17 [Cyril]
heycam: the marker has now two new attributes: position and reference
09:41:40 [Cyril]
... the SVGMarkerList does not let you add new markers
09:41:48 [Cyril]
... it's only access to the computed list of all markers
09:41:56 [Cyril]
... it might be a bit tricky to change that
09:42:08 [Cyril]
... if this was useful for adding/removing makers
09:42:31 [Cyril]
... we could have markers and childMarkers
09:43:03 [Cyril]
brian: I noticed that the PathSegList throws an exception
09:43:12 [Cyril]
... it is not consistent
09:43:37 [Cyril]
heycam: if you use the squared brackets you will not get exceptions
09:44:13 [Cyril]
brian: on marker list the getter is defined to return null if the index is out of range
09:44:30 [Cyril]
... but other interfaces SVGPathSegList it is defined to throw an Index Size Error
09:44:41 [Cyril]
... so we need to make them consistent
09:45:07 [Cyril]
... one detail of that is that if you use square brackets syntax, you won't get an exception regardless of the index and range
09:45:20 [Cyril]
... that's due to the behavior defined in WebIDL
09:45:47 [Cyril]
heycam: you could use path.markers[n]
09:46:18 [Cyril]
... if you use that even if me make the method throw an exception this won't
09:46:26 [Cyril]
... but I'll add the exception to the method
09:46:57 [Cyril]
ACTION: heycam to make SVGMarkerList item method return an exception when the index is out of range
09:46:57 [trackbot]
Created ACTION-3379 - Make SVGMarkerList item method return an exception when the index is out of range [on Cameron McCormack - due 2012-09-26].
09:47:21 [Cyril]
ACTION: heycam to make the SVGPoint changes to take a mouse event in the constructor
09:47:21 [trackbot]
Created ACTION-3380 - Make the SVGPoint changes to take a mouse event in the constructor [on Cameron McCormack - due 2012-09-26].
09:47:58 [Cyril]
Topic: Hatchings
09:48:48 [Tav]
http://tavmjong.free.fr/SVG/SVGOpen2012/ARTISTS/svg_2012_artists.svg#15_0
09:49:17 [Cyril]
tav: this is a fairly common technical drawing in maps
09:49:33 [Cyril]
... but you can use patterns but there are anomalies at boundarys
09:49:54 [Cyril]
... but there is also a problem for plotters, because the pen goes up and down at each boundary
09:50:01 [Cyril]
... open source plotters use SVG for that
09:50:11 [Cyril]
... I'd like to have some feedback on a new syntax
09:50:33 [Cyril]
... you specify an angle, origin, pitch and width
09:50:54 [Cyril]
... if you want multiple fills you want to use multiple elements
09:51:16 [Cyril]
tab: you are using the line element and it should probably a path element
09:51:30 [Cyril]
tav: yes you could specify a pattern that gets extruded (slide 18)
09:51:58 [Cyril]
heycam: dasharray is pitch: gap and width and gap ...
09:52:59 [Cyril]
tav: by using the path syntax you can have more complicated hatchings
09:53:39 [Cyril]
tab: would you do a line to if start and end don't match
09:53:41 [Cyril]
tav: yes
09:54:03 [Cyril]
tab: you determine how large the tile is by using the bounding box
09:54:23 [Cyril]
cyril: how is it different from a pattern
09:54:54 [Cyril]
tab: when you tile patterns you should paint each tile separately
09:55:10 [Cyril]
... and that's not what you want for engravers for instance
09:55:45 [Cyril]
cyril: what makes this behavior not possible with pattern?
09:56:26 [Cyril]
(heycam drawing)
09:57:56 [Cyril]
cyril: I don't understand why we need to introduce a new element just to change the rendering algorithm
09:58:42 [Cyril]
doug: this makes it simpler to define a pattern that has overlaps with other pattern elements
09:59:45 [Cyril]
... because it overlaps with itself
10:00:08 [Cyril]
(doug drawing example of the zig-zag pattern)
10:00:33 [Cyril]
brian: in some cases, when you have cross hatching
10:00:40 [Cyril]
tab: I like the syntax on the second slide
10:00:53 [Cyril]
... I don't like the more compact representation using the dash syntax
10:01:45 [birtles]
brian: this would make it more easy to detect the situations andreas showed us yesterday when you want to rotate the cross-hatching so that the lines don't end up parallel with the edges of the shape
10:01:48 [Cyril]
doug: it would easier to animate this kind of pattern
10:02:09 [Cyril]
(andreas showing point hatching)
10:03:54 [Cyril]
tab: I like the idea, this is good!
10:04:10 [Cyril]
doug: especially given the parameters that control the pattern repetition
10:05:04 [Cyril]
brian: cross-hatching?
10:05:14 [Cyril]
tav: easily done with multiple fills
10:05:28 [Cyril]
cyril: what about nested hatchings?
10:06:02 [Cyril]
tab: no, this just accepts paths
10:06:22 [Cyril]
... what happens if you put more complex strokes?
10:06:36 [Cyril]
... filling a stroke with a gradient or an image
10:06:50 [Cyril]
... does it repeat on a per tile basis or more
10:06:59 [Cyril]
... what is the gradientUnit
10:07:08 [Cyril]
tav: I haven't thought about it
10:07:43 [Cyril]
brian: how important is it to specify colors?
10:07:51 [Cyril]
... couldn't you do it on the referencing?
10:09:00 [Cyril]
... if you want a gradient, you could do it in a mask
10:09:33 [Cyril]
tab: maybe we need to change line to hatchline so that its stroke property takes only a color and not a paint server
10:09:49 [Cyril]
heycam: I'm nto sure it's impossible to have it work for gradients
10:10:14 [Cyril]
... but I can see that so that markers don't go on there
10:10:24 [Cyril]
tab: and also filling would be a non-sense
10:10:34 [Cyril]
heycam: but it could be made consistent for the model
10:11:48 [Cyril]
... I would still be fine with path and line instead of hatchpath and hatchline
10:12:05 [Cyril]
brian: clip-path has restrictions
10:12:14 [Cyril]
... already
10:12:28 [Cyril]
heycam: it is analogous to clip-path
10:12:34 [Cyril]
rik: yes, it's the opposite
10:12:46 [birtles]
(that is, children of the clipPath element)
10:12:58 [Cyril]
tab: if we say that some attributes are ignored, I would be fine with it
10:13:22 [Cyril]
tav: offset tells you where you start with the pitch
10:14:12 [Cyril]
tab: you could use the x,y attributes to encode the offset
10:14:57 [Cyril]
brian: how do multiple fills work?
10:15:08 [Cyril]
tab: we have to work that out yet
10:15:58 [Cyril]
heycam: at some points, we want to allow multiple fills and multiple strokes without vector effect
10:16:20 [Cyril]
tab: that is copy what CSS has done with background and that's the wrong way
10:16:30 [Cyril]
... having a compound fill would be better
10:16:42 [Cyril]
rik: I agree
10:17:07 [Cyril]
brian: you could bundle a cross-patch with a background for instance
10:17:19 [birtles]
s/cross-patch/cross-hatch/
10:18:19 [Cyril]
RESOLUTION: SVG 2 will have a modified version Tav's hatch proposal
10:18:54 [Cyril]
ACTION: Tav to work out the details of the modifications of the initial proposal
10:18:54 [trackbot]
Created ACTION-3381 - Work out the details of the modifications of the initial proposal [on Tavmjong Bah - due 2012-09-26].
10:19:33 [Cyril]
ACTION: Tab to think about a compound paint server proposal
10:19:33 [trackbot]
Created ACTION-3382 - Think about a compound paint server proposal [on Tab Atkins Jr. - due 2012-09-26].
10:23:23 [Cyril]
(andreas showing a marker centroid example)
10:24:13 [TabAtkins]
ScribeNick: TabAtkins
10:24:33 [TabAtkins]
andreas: [shows a mapping example where patterns are placed at the centroid of the various geometric objects]
10:24:49 [TabAtkins]
TabAtkins: You could do that maybe as a marker positioned at the centroid?
10:25:06 [TabAtkins]
shepazu: If we exposed that kind of thing, you'd want an explicit DOM API on <path> returning the centroid as well.
10:25:13 [TabAtkins]
ScribeNick: Cyril
10:25:38 [Cyril]
doug: centroid is actually not trivial to calculate
10:26:06 [Cyril]
heycam: we could make the hatching large enough so that it does not repeat
10:26:18 [Cyril]
... actually you can use a pattern for that
10:26:52 [Cyril]
doug: do we add a keyword for centroid
10:28:55 [shepazu]
http://mathforum.org/library/drmath/view/57665.html
10:28:59 [stakagi]
http://www.georeference.org/doc/transform_centroids.htm
10:29:53 [Cyril]
(discussion on the centroid properties)
10:32:18 [Cyril]
lunch!!
10:42:19 [andreas]
Centroid: http://user.gs.rmit.edu.au/rod/files/publications/MSIA_Centroid.pdf
11:16:02 [andreas]
andreas has joined #svg
11:43:27 [TabAtkins]
TabAtkins has joined #svg
11:44:23 [stakagi]
stakagi has joined #svg
11:45:06 [Cyril]
Cyril has joined #svg
11:46:25 [nikos]
nikos has joined #svg
11:48:16 [TabAtkins]
TabAtkins has joined #svg
11:54:32 [cabanier]
cabanier has left #svg
11:54:47 [cabanier]
cabanier has joined #svg
11:56:00 [Cyril]
http://tavmjong.free.fr/SVG/SVGOpen2012/ARTISTS/svg_2012_artists.svg#19_0
11:56:03 [Tav]
http://tavmjong.free.fr/SVG/SVGOpen2012/ARTISTS/svg_2012_artists.svg#19_0
11:56:12 [heycam]
ScribeNick: heycam
11:56:16 [heycam]
Topic: extrapolated line join
11:56:26 [Tav]
http://tavmjong.free.fr/SVG/LINEJOIN/index.html
11:56:42 [heycam]
Tav: we talked about this last time
11:56:50 [heycam]
… the question at that point was "what about the math"
11:56:53 [heycam]
… so I've provided it here
11:56:57 [heycam]
… it's straightforward
11:57:09 [heycam]
… you're looking at the curvature at the end of the path where the two segments join
11:57:33 [heycam]
… using that to draw circles, and you shrink or expand circles to the edges of the path, and extrapolate from there
11:58:14 [heycam]
TabAtkins: it's just expanding the circle so that it matches the edge of the path, rather than the center of the path
11:58:41 [heycam]
Tav: you can have a straight line, and then displace that by half a stroke width
11:58:50 [heycam]
… because sometimes these lines aren't going to intersect
11:58:55 [heycam]
… you might also want to apply a miter limit
11:59:20 [heycam]
TabAtkins: seems reasonable, thanks for working out the math
11:59:32 [heycam]
Cyril: the curvature doesn't take into account the stroke, just the path?
11:59:34 [heycam]
TabAtkins: correct
11:59:37 [heycam]
Tav: it's going to be the same thing
12:00:15 [heycam]
Cyril: is this implemented somewhere?
12:00:27 [heycam]
TabAtkins: Inkscape has something similar but not quite the same
12:00:34 [heycam]
… the person implementing it just mirrored the path to get the curvature
12:00:37 [heycam]
… which I don't think you want to do
12:00:44 [heycam]
s/TabTakins/Tav/
12:00:50 [heycam]
s/TabAtkins/Tav/
12:02:13 [heycam]
cabanier: if they become a line, you miter them?
12:02:26 [heycam]
Tav: there are cases where the circles won't intersect, or if they're both lines
12:02:55 [heycam]
… then you fall back to miter
12:03:35 [heycam]
heycam: would you want to apply miter-limit to this join, and also to the fallback to a miter-limited miter?
12:03:44 [heycam]
TabAtkins: no, if the extrapolation doesn't work you fall back to bevel
12:03:55 [heycam]
… but yes apply miter-limit to extrapolated join
12:06:20 [heycam]
RESOLUTION: We will add extrapolated line joins to SVG 2, using Tav's proposal.
12:06:29 [heycam]
ACTION: Tav to add extrapolated line joins to the spec.
12:06:30 [trackbot]
Created ACTION-3383 - Add extrapolated line joins to the spec. [on Tavmjong Bah - due 2012-09-26].
12:07:12 [heycam]
Topic: GetSVGDocument interface
12:08:00 [heycam]
heycam: [explains what GetSVGDocument]
12:08:06 [heycam]
s/]/does]/
12:08:13 [heycam]
ed: getSVGDocument doesn't work on embed
12:08:17 [heycam]
s/getSVGDocument/contentDocument/
12:10:33 [heycam]
http://lists.w3.org/Archives/Public/www-svg/2012Aug/0095.html
12:11:31 [heycam]
heycam: from my testing there it looks like it is consistently not implemented on embed, yes
12:11:46 [heycam]
TabAtkins: I'm fine with keeping it in, for legacy purposes
12:12:00 [heycam]
… would be good to amend the spec to say that it returns the same as contentDocument for legacy purposes
12:13:00 [ed]
from the spec: "This interface is deprecated and may be dropped from future versions of the SVG specification. Authors are suggested to use the contentDocument attribute on the EmbeddingElement interface to obtain a referenced SVG document, if that interface is available."
12:13:28 [heycam]
RESOLUTION: Keep GetSVGDocument in SVG 2.
12:14:19 [heycam]
Topic: spaces/commas in SVG view specification
12:14:51 [heycam]
heycam: just wanted to confirm what our decision was
12:15:43 [heycam]
ed: we decided to allow commas and spaces in viewBox and preserveAspectRatio parts of the view specification
12:15:45 [heycam]
heycam: ok
12:16:58 [heycam]
Topic: HTML integration
12:17:09 [heycam]
TabAtkins: I've started to push on getting html elements directly in svg
12:17:12 [heycam]
… but not the other way around
12:17:26 [ed]
s/viewBox and preserveAspectRatio parts of the view specification/viewBox and preserveAspectRatio attributes, and to only allow comma separation in the view specification (for fragments)
12:17:28 [heycam]
…but I will do that just for the resource-like elements (like clipPath)
12:20:36 [heycam]
[for view fragments, heycam has an action to check if spaces would work after unescaping url fragments, and then allow spaces in there if that works]
12:21:06 [heycam]
Topic: SVG DOM improvements
12:21:32 [heycam]
heycam: I've added some constructors to SVG type interfaces
12:21:39 [heycam]
… for example https://svgwg.org/svg2-draft/types.html#InterfaceSVGLength
12:22:08 [heycam]
… three constructors there
12:22:12 [heycam]
… one initializes it to 0
12:22:32 [heycam]
… another takes the separate value and unit types
12:22:35 [heycam]
… and another takes a string
12:22:48 [heycam]
TabAtkins: the direction for CSS OM values api, is a constructor named "px"
12:24:02 [TabAtkins]
el.style.width = CSS.px(5)
12:24:43 [heycam]
TabAtkins: then the length object has attributes for converting into various units
12:24:54 [heycam]
birtles: we had a proposal like that already
12:25:20 [heycam]
TabAtkins: this part of the CSS OM proposal is uncontroversial
12:25:53 [heycam]
heycam: how do SVGLength and CSSLengthComponentValue relate then?
12:25:58 [heycam]
TabAtkins: don't care, but they should behave the same
12:27:41 [heycam]
TabAtkins: you could also have CSS.length("20px")
12:28:29 [heycam]
heycam: would we use CSS.px() objects in place of SVGLength?
12:30:01 [heycam]
TabAtkins: you could make SVGAnimatedLength inherit from CSSLengthComponentValue
12:30:09 [heycam]
… and then add your baseVal animVal on there
12:30:32 [heycam]
ACTION: Tab to write up how SVG types should work with CSS OM objects
12:30:33 [trackbot]
Created ACTION-3384 - Write up how SVG types should work with CSS OM objects [on Tab Atkins Jr. - due 2012-09-26].
12:31:12 [heycam]
Topic: rendering-mode: animate
12:31:33 [heycam]
shepazu: there are various rendering modes like geometricPrecision
12:32:20 [heycam]
… when you try to snap to pixels, this affects the rendering
12:32:24 [heycam]
… they're optional anyway, it's a hint
12:32:41 [heycam]
… one of the cases we talked about is when you're animating
12:33:01 [heycam]
… if you use crispEdges for text animation, it'll be jerky
12:33:27 [heycam]
… I'm proposing a hint "animate" so that the user agent know that this is going to be animated
12:33:32 [heycam]
TabAtkins: so it can switch to a low cost rendering mode?
12:33:34 [heycam]
cabanier: it's higher cost
12:33:43 [heycam]
shepazu: you should switch to a mode that gives the best visual effect for being animated
12:34:15 [heycam]
ed: if you render a rectangle slowly across the screen you'll see the snapping happening
12:34:20 [heycam]
… or the blurring if you use the normal one
12:34:27 [heycam]
cabanier: how would you solve it? draw half pixels?
12:34:41 [heycam]
heycam: how is it different from geometricPrecision?
12:34:58 [heycam]
shepazu: an author won't know that the way to make text look good when you're animating is "geometricPrecision"
12:35:09 [heycam]
… but if you have a mode called "animate", the author will know
12:35:32 [heycam]
… you could say in the spec "if you're animating, use geometricPrecision", but it will be hard for authors to discover
12:36:08 [heycam]
… I don't feel too strongly about it, just thought it would be easier to use
12:38:49 [heycam]
birtles: I think most UAs already detect if something is being animated and optimize it
12:39:14 [heycam]
Cyril: I think the difference is geometricPrecision, some heuristic could not detect what the user would prefer
12:39:21 [heycam]
… the browser can detect it's going to be animated
12:39:41 [heycam]
shepazu: maybe we should add in for crispEdges that browsers may wish to disregard this when animating text
12:39:58 [heycam]
ed: I think it depends on the device
12:40:39 [heycam]
heycam: we could add a note for "auto" to say that text shouldn't be pixel snapped when it is being animated
12:41:37 [Cyril]
hand
12:41:46 [heycam]
RESOLUTION: {shape,text}-rendering should say that "auto" means that pixel snapping shouldn't be done when animating
12:42:13 [Zakim]
Zakim has joined #svg
12:42:37 [Cyril]
hand
12:42:48 [Cyril]
hand-
12:42:50 [TabAtkins]
Gotta hand it to Zakim, he's pretty weird
12:42:58 [TabAtkins]
On the other hand
12:42:58 [heycam]
ACTION: Doug to add notes to {shape,text}-rendering auto to mention not doing pixel snapping when animating
12:42:58 [trackbot]
Created ACTION-3385 - Add notes to {shape,text}-rendering auto to mention not doing pixel snapping when animating [on Doug Schepers - due 2012-09-26].
12:42:59 [Cyril]
-hand
12:43:04 [TabAtkins]
q-
12:43:14 [Cyril]
q-
12:44:05 [heycam]
Topic: SVG documentation
12:44:31 [heycam]
shepazu: for W3C's documentation, I'd like to automatically extract element/attribute/property names and values from the spec
12:44:39 [heycam]
… if you could also send me tutorials you'd like to see
12:49:11 [heycam]
Topic: CSS Variables and Params
12:49:19 [heycam]
shepazu: params should use the variable mechanism for substituting values
12:49:31 [heycam]
… for text content, we need something to render it into the DOM, possibly <tref>
12:49:40 [heycam]
TabAtkins: make it accept a var() function in addition to a url()
12:50:47 [heycam]
shepazu: I'll work with Tab on this
12:50:52 [heycam]
Topic: rounded corners
12:51:05 [heycam]
shepazu: [draws a star with rounded corners]
12:51:20 [heycam]
… [but only on the outer points]
12:51:54 [heycam]
shepazu: my proposal is that you bisect the angle, the center point of the circle is the point on that line in which a circle of that radius will fit
12:52:02 [heycam]
… you specify a radius
12:52:26 [heycam]
TabAtkins: this is like a custom line join?
12:52:41 [heycam]
shepazu: yes, basically
12:52:47 [heycam]
… a comma separated list that repeats like dash array
12:52:56 [heycam]
… you give a list of radii, and it applies them in sequence when a corner is encountered
12:53:58 [heycam]
TabAtkins: this is the arcTo from canvas
12:55:50 [heycam]
heycam: is this like a line join?
12:55:54 [heycam]
shepazu: but this should affect the fill
12:57:16 [glenn]
glenn has joined #svg
12:57:31 [heycam]
shepazu: with my proposal, you would say r="5", with Tab's proposal you'd have to change each edge in the path data
14:06:41 [stakagi]
stakagi has joined #svg
14:07:08 [TabAtkins]
TabAtkins has joined #svg
14:10:03 [birtles]
birtles has joined #svg
14:18:36 [nikos]
nikos has joined #svg
14:18:45 [ChrisL]
ChrisL has joined #svg
14:19:07 [ChrisL]
rrsagent, here
14:19:07 [RRSAgent]
See http://www.w3.org/2012/09/19-svg-irc#T14-19-07
14:19:22 [heycam]
heycam: is this only straight line segments?
14:19:29 [heycam]
shepazu: no any segments
14:19:59 [heycam]
TabAtkins: you want to preserve curve continuity when you come into the arc
14:20:42 [heycam]
shepazu: Tab's counterproposal is better than what you can do in path today
14:20:46 [heycam]
TabAtkins: yes because you have to do trig
14:21:09 [heycam]
shepazu: this proposal could also apply to rect, polyline, polygon, star, connector
14:21:20 [glenn]
glenn has joined #svg
14:21:21 [heycam]
… on a connector, you might want it to go through an intermediate point (with an orthogonal connector)
14:21:30 [heycam]
… but with a rounded corner there
14:22:03 [heycam]
… this proposal reduces the amount that you have to type
14:22:12 [heycam]
… even on a <path>, it's easy then to style it differently
14:22:17 [heycam]
… rather than tweaking the path data
14:22:26 [heycam]
TabAtkins: sounds good to me
14:22:56 [heycam]
… the math shouldn't be hard to describe
14:23:02 [heycam]
shepazu: I also want there to be a way to pull this out
14:23:12 [heycam]
… toPathData() on a shape
14:24:06 [glenn]
glenn has joined #svg
14:24:20 [heycam]
… I'm not sure I want to see it on path, but on all other polygon-like elements
14:24:23 [krit]
krit has joined #svg
14:24:24 [heycam]
… on straight lines it's really easy
14:24:36 [heycam]
… but there could be some odd beziers that would have a bad effect with this
14:24:44 [heycam]
… so for paths leave it to arcTo, but r on other elements
14:25:14 [heycam]
… this property wouldn't give you control of x and y, just a single radius
14:25:29 [heycam]
… I'd like to see the difficulties it would introduce to path, because I'd like to see it there
14:25:47 [heycam]
TabAtkins: there will be some cases that will be difficult to translate into paths, and some that will look weird
14:28:27 [heycam]
shepazu: I don't mind about the edge cases
14:28:42 [heycam]
shepazu: sometimes it will add to the fill and sometimes it will remove from the fill
14:29:23 [heycam]
heycam: it always goes on the smaller angle? (<180 degrees?)
14:29:24 [heycam]
shepazu: yes
14:30:01 [heycam]
shepazu: the property would be dasharray-like, a sequence of radii
14:30:12 [glenn]
glenn has joined #svg
14:31:09 [heycam]
TabAtkins: if the r argument on a rect applied in the same order as border-radius that would be good
14:31:28 [heycam]
heycam: what about applying this to <rect rx ry>?
14:31:34 [heycam]
shepazu: rx ry should win
14:31:56 [heycam]
shepazu: if it's not possible to fit the circle between the segments, then it gets skipped
14:32:06 [heycam]
TabAtkins: is this an attribute or a property?
14:32:08 [heycam]
shepazu: property
14:34:51 [TabAtkins]
also a presentation attribute
14:34:53 [heycam]
TabAtkins: just call the property "r"
14:35:22 [ChrisL]
@tab all properties are also presentation attributes, in svg
14:35:52 [heycam]
ed: I want to allow the same thing that border-radius could do on rect
14:35:56 [heycam]
… different x/y radii
14:37:02 [ChrisL]
@ed but then you need to specify how to align the major and minor axes of the ellipses. circular radii are much easier for rounding arbitrary shapes
14:37:51 [heycam]
shepazu: ellipses would be hard
14:37:55 [ed]
ChrisL, yes, I meant to make <rect> a specialcase
14:37:56 [heycam]
TabAtkins: and you'd have to worry about rotation
14:37:58 [heycam]
shepazu: let's not do radii
14:38:07 [heycam]
s/radii/different x and radii/
14:38:11 [heycam]
*x and y
14:39:27 [heycam]
shepazu: the only element it wouldn't be allowed on is ellipse
14:40:03 [krit]
Why not on a per element basis in general
14:40:23 [krit]
circle, rect, ellipse doesn't make sense for me with a new r
14:40:41 [heycam]
rect does, since you can have different things at different corners
14:40:46 [heycam]
circle and ellipse I don't think it's needed
14:41:07 [krit]
heycam: Isn't rx and ry enough on rect?
14:41:28 [birtles]
krit: they set the same radii on all vertices
14:41:33 [ChrisL]
@krit only one value for the whole rect, though
14:41:45 [krit]
ok
14:42:46 [ChrisL]
although we could extend rx and ry on rect to allow (1..4) values
14:43:07 [heycam]
that's also an option, but if we allow this new property on polygon, polyline, etc. I think it makes sense to use it on rect too
14:43:28 [heycam]
birtles: when do you want to set different radii on different points?
14:43:38 [heycam]
TabAtkins: for the star example, you want radius, no radius, radius, no radius, ...
14:43:57 [ChrisL]
as noted earlier, rect differs by allowing elliptical arc (already). only circluar arc on plyline, polygon and path though
14:44:42 [heycam]
elliptical arcs make less sense (at least, they're harder) on non 90-degree angles
14:44:44 [ChrisL]
so, i thnk it does not make sense on rect and instead, the existing rx and ry should be extended to take a list
14:44:44 [heycam]
i.e. not rect
14:45:25 [shepazu]
ChrisL, we're proposing both
14:45:25 [heycam]
TabAtkins: we can extend rx/ry attributes too
14:45:25 [ChrisL]
while adding the new r property on path, polygon, polyline and star
14:45:37 [ChrisL]
ok
14:47:26 [heycam]
RESOLUTION: We add Doug's r="" proposal for rounded corners for shape-y elements, and pending the math, for paths too.
14:48:07 [heycam]
RESOLUTION: We also allow rx/ry to extend to multiple values on rect.
14:48:26 [heycam]
ACTION: Doug to add the r="" proposal to SVG 2.
14:48:26 [trackbot]
Created ACTION-3386 - Add the r="" proposal to SVG 2. [on Doug Schepers - due 2012-09-26].
14:49:07 [ChrisL]
i can take the rx ry extending action
14:50:00 [heycam]
ACTION: Chris to extend rx/ry on rect to allow lists of values.
14:50:00 [trackbot]
Created ACTION-3387 - Extend rx/ry on rect to allow lists of values. [on Chris Lilley - due 2012-09-26].
14:50:23 [heycam]
there might be some complications with the DOM there, they're SVGAnimatedLengths now -- would they become SVGAnimatedLengthLists? not sure.
14:50:52 [ChrisL]
yes I suspect so
14:51:01 [ChrisL]
do people depend on that in code?
14:51:16 [heycam]
it's possible
14:51:20 [ed]
since we're making them properties we'd need to probably change the DOM somehow anyway
14:51:23 [heycam]
less likely than x/y/width/height but certainly possible
14:51:34 [ChrisL]
so that could be a script breaking change
14:51:51 [heycam]
could be
14:51:55 [heycam]
it should be thought about ):
14:52:03 [heycam]
s/):/:)/
14:53:10 [heycam]
Topic: JSON serialization
14:53:12 [shepazu]
http://www.w3.org/Graphics/SVG/WG/wiki/Path_toJSON
14:53:46 [heycam]
TabAtkins: the one change I made to your page was removing the ability to do multiple segments with the one command letter
14:54:37 [heycam]
cabanier: you could make x/y/etc. into an array
14:55:27 [heycam]
shepazu: you could have p[0].x, p[0].y, p[1].x, p[1].y
14:55:33 [heycam]
TabAtkins: what does that buy you?
14:55:47 [Zakim]
Zakim has left #svg
14:55:58 [krit]
what? ZAKIM!!!
14:56:07 [heycam]
cabanier: it would help you iterate over them
14:56:13 [Zakim]
Zakim has joined #svg
14:56:22 [heycam]
TabAtkins: you would never want to do that
14:56:38 [heycam]
shepazu: you also changed sweepFlag to clockwise
14:56:41 [heycam]
TabAtkins: yes
14:57:25 [heycam]
birtles: what's wrong with an array of points in each command?
14:57:29 [heycam]
TabAtkins: it's a bit harder to work with
14:57:49 [heycam]
… for a MoveTo, for example, instead of blah.x you have to do blah.p[0].x
14:57:57 [krit]
couldn't it also mean that the number of input elements is unpredictable?
14:58:17 [heycam]
birtles: if you take this and turn it back into a string, it's easier if it's an array
14:58:39 [heycam]
birtles: there was one library I was using...
14:59:05 [TabAtkins]
s/p\[0\].x/p\[0\]/
15:00:28 [heycam]
… it uses points
15:00:33 [heycam]
… but I can see that could be cumbersome
15:00:46 [heycam]
heycam: if you have a fixed number of points per command (<= 4) which we do, then I think not use an array is better
15:01:48 [heycam]
shepazu: one downside to this is that it doesn't map to the existing path command letters
15:01:49 [krit]
paper.js also has a Path API you could look at http://paperjs.org/reference/
15:02:36 [heycam]
shepazu: this current proposal it's more verbose but clearer
15:02:45 [heycam]
cabanier: it doesn't use more memory really
15:02:57 [heycam]
ed: will we have path commands that take arbitrary parameter lists?
15:03:10 [heycam]
TabAtkins: you can't, because you can't do the automatic segment repetition that the existing commands do
15:04:19 [heycam]
TabAtkins: the catmull-rom command takes a list of points though
15:04:30 [heycam]
shepazu: yes I wanted to have a new "p" start a separate catmull-rom curve
15:11:23 [heycam]
ACTION: Tab to investigate paper.js' arcThrough
15:11:23 [trackbot]
Created ACTION-3388 - Investigate paper.js' arcThrough [on Tab Atkins Jr. - due 2012-09-26].
15:15:12 [cabanier]
*krit: we're looking at the paper.js stuff *
15:23:12 [heycam]
Topic: JSON serialization of SVG
15:24:38 [heycam]
shepazu: there are some reasons to want a standardised JSON serialisation of markup in general, including SVG
15:24:43 [heycam]
… this is something that some script libraries do anyway
15:25:09 [heycam]
… it would be good to have a unified way for them to use JSON serializations of SVG
15:25:15 [heycam]
… rather than each have an ad hoc one
15:25:23 [heycam]
… another thing is it would be useful for postMessage
15:25:28 [heycam]
… this is more general than SVG really
15:25:36 [heycam]
… it wants to be able to serialise any given markup
15:25:48 [heycam]
… this is not recommended for browsers to implement
15:26:08 [heycam]
s/implemented/render/
15:26:34 [heycam]
TabAtkins: we would attach a toJSON to Element, and a fromJSON to Document
15:28:05 [heycam]
-- end --
15:28:12 [heycam]
RRSAgent, make minutes
15:28:12 [RRSAgent]
I have made the request to generate http://www.w3.org/2012/09/19-svg-minutes.html heycam
15:28:38 [heycam]
Present: Erik, Cameron, Nikos, Doug, Tab, Rik, Cyril, Takagi-san, Tav, Konno-san, Brian
15:28:41 [heycam]
RRSAgent, make minutes
15:28:41 [RRSAgent]
I have made the request to generate http://www.w3.org/2012/09/19-svg-minutes.html heycam
15:28:59 [stakagi]
http://www.w3.org/Graphics/SVG/WG/track/issues/2050
15:31:47 [heycam]
stakagi: for the JSON path syntax, the names should align with the proposal for expanded path segment elements
15:31:51 [heycam]
RRSAgent: make minutes
15:31:51 [RRSAgent]
I have made the request to generate http://www.w3.org/2012/09/19-svg-minutes.html heycam
15:51:10 [jet]
jet has joined #svg
16:56:18 [Zakim]
Zakim has left #svg
17:09:08 [konno_]
konno_ has joined #svg