Commit Graph

17 Commits

Author SHA1 Message Date
John Firebaugh 5eb0644242 Improve multipolygon rendering
Multipolygon relations report their geometry as 'area' and are rendered
as such. However, they do not render a stroke. The stroke rendering
will come from the individual lines, which are given the tag
classes of their parent relations, allowing them to have a stroke
style matching the style of simple areas with the same tags.

Untagged circular ways are no longer considered areas. This prevents
an untagged inner way of a multipolygon from rendering as an area and
is consistent with how P2 and JOSM treat them.

In the CSS, it's no longer necessary to deal with multipolygons
explicitly in selectors. But keep in mind that area boundaries can
now be rendered either as lines or as area strokes. In most cases
the selector should be `path.stroke.tag-_____`, i.e. an explicit
`.area` or `.line` classes should not be included.

Finally, the parent ways of selected multipolygons are given the 'selected'
class.
2013-02-05 15:20:11 -08:00
Ansis Brammanis d3d0851596 Fix svg/midpoint tests
Proper solution waiting on 369
2013-02-05 00:51:54 -05:00
John Firebaugh 459dc00ce5 Change the midpoint data a bit
Store the ways which share the segment and the index of
the segment. This will be used in both DragWay and Draw
behaviors.
2013-01-30 15:47:33 -05:00
John Firebaugh 66ac8349ac Stack areas by area (#324)
This doesn't address stacking multipolygons, or interleaving
areas and multipolygons. More and more, I'm thinking we should
just merge the two into a unified "area" geometry.
2013-01-25 17:13:34 -05:00
John Firebaugh 1be596c21b Fix tests 2013-01-24 11:26:57 -05:00
John Firebaugh 2c6e244fb0 Add tests for iD.svg.Lines 2013-01-17 15:17:40 -08:00
John Firebaugh 3eaf4a46e0 Add CSS classes for relation memberships
An entity that is a member of a relation will have the classes
`member`, `member-role-<member role>`, and `member-type-<relation type>`.

The first use of these classes is to avoid filling multipolygon
member areas.
2013-01-17 15:17:40 -08:00
John Firebaugh 9a76b81125 First cut on multipolygon rendering 2013-01-17 11:57:30 -08:00
John Firebaugh 545789efcc More area tests 2013-01-17 11:57:30 -08:00
John Firebaugh 8564279926 Use identity projection in tests 2013-01-17 11:57:29 -08:00
John Firebaugh 9f1506af5e Always use rounded projection 2013-01-17 11:57:29 -08:00
Tom MacWright ea3b7baf14 Tag classes no longer changes classes if there is no change. This makes the default, no-class scenario null instead of an empty string 2013-01-12 09:30:11 -05:00
John Firebaugh acaaab5dc9 Extract iD.svg.Surface 2013-01-11 16:01:39 -08:00
John Firebaugh 45fd260d8f Add basic Area test 2013-01-11 15:49:56 -08:00
John Firebaugh e95d163dbc Apply tag classes to vertices and points
While here, introduce a `classed` matcher for Chai.
2013-01-11 12:22:23 -08:00
John Firebaugh 577398ca21 Fix .shared classing
Now that Graph#parentWays is cached, the specialized Graph#parentStructure
method is no longer necessary.

This commit also demonstrates that it's relatively easy to write specs for
rendering now!
2013-01-11 11:56:37 -08:00
John Firebaugh b8310e2d9f Move to iD.svg.TagClasses 2013-01-11 11:56:37 -08:00