Hi all,

   this proposal patch moves the bounding box adjustment logic from
polyline.c back into poly_conn. It does so by defining a struct
"extra_spacing", which hold a few real values for extra space around certain
features of the connection (in the case of poly_conn, this means
longitudinal and transversal spacing at the beginning and the end of the
object, and transversal spacing at the "middle" (defined like "any
segment"). Note that this doesn't speak of concepts like line widths, arrow
heads and the like (which really don't belong to poly_conn).

When the subclass wants to use <parent>_update_boundingbox, it fills the
extra_spacing structure with values which makes sense for that object.

This patch also takes care in a less primitive way of the extra spacing
needed with LINEJOIN_MITER when the angle between two segments is more than
11 degrees (a value assumed the same between renderers -- perhaps just for
the moment).

I've not yet converted the other parent objects and real objects besides
poly_conn/polyline to this scheme, but it's of course planned for RSN.

What do you think of this ? Shall I proceed and commit this patch (after
cleaning and massive conversion of the rest of the tree) ? 

        -- Cyrille

-- 
Grumpf.

extra_space.diff.gz

Reply via email to