[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gEDA-dev: glist-dev without screen coordinate caching
On Fri, 2006-12-15 at 17:47 +0100, Patrick Bernaud wrote:
> Sure.
>
> The purpose of the alternative is to avoid modifying any object before
> the user confirms the action. At any time during the action the user
> can cancel and it is guaranteed that the data has not been modified.
>
> To do so, a list of pointers to the objects concerned is built (a GList
> in PAGE) and populated with either objects from the place list (a
> single list for complex, attribs and text), for place, buffer actions
> or from the main object list, for move and copy actions.
>
> Every time the user moves the pointer (translation), require a
> rotation or a symetry, a matrix is updated to record the changes the
> user requested. This matrix is passed to the draw_xor() function that
> display the object transformed but without modifying it.
>
> When the user cancels, it just discards the matrix and the objects
> from the place list (if used).
>
> When the user applies the changes, the final matrix is broken down in
> a combination of mirror, rotation, translation that is only now
> applied to the objects.
Can I just say...
Fantastic!
I was greatly impressed by the amount of cleanup achievable in the
o_complex_... functions. I look forward to us both being able to merge
our changes.
With this description, I now understand how you managed such
simplifications, and I am very impressed.
Regards,
Peter C.
_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev