From: Ivica Ico Bukvic ico@vt.edu To: Jonathan Wilkes jancsika@yahoo.com Cc: Charles Goyard cg@fsck.fr; "pd-list@iem.at" pd-list@iem.at Sent: Friday, June 14, 2013 2:47 PM Subject: Re: [PD] Fwd: right angle connections
On 06/14/2013 12:07 PM, Jonathan Wilkes wrote:
The real problem is: having the feature forces every pd flavor to understand them at the file format level, even if not
rendering it.
If the "connect" method took A_GIMME you could just follow
its
initial four floats with a list of coordinates.
-Jonathan
Indeed. This is how pd-l2ork maintains backwards compatibility for a number of features. That said, storing coordinates in the existing file format and/or drawing the cord are not the problem. The problem is what happens when you translate the object the cord is connected to? Uncovering logic whether all the coordinates need to be translated (as opposed to only last one) is something that even Max fails to do gracefully despite the fact it has been capable of this for over 10 years, perhaps in part because there is no perfect/graceful way to deal with this that does not require some fairly evolved logic.
For problems like this we should probably look to the only arena that takes UX seriously: games.
There has to be some game designer who ran into exactly this problem and wrote a decent solution.
Another challenge is cord selection. What needs to be checked is if
the existing cord selection logic is indeed robust to handle new
segmented cords. Although my memory is not what it used to be, as
far as I remember, the hitbox detection is fairly primitive when it
comes to cords and in its current form is not capable of gracefully
handling this. Please correct me if I am wrong.
You're probably right. Having the editing logic on the c side means someone would have to code from scratch something that probably takes a single statement in any gui toolkit-- even tk. :)
Perhaps more pressing matter IMO is ability to multiselect cords so
that you can erase many of them at once without having to resort to
hack-ish ways of cutting and pasting objects.
Control-clicking on an empty part of a canvas currently does nothing. Control-click and dragging could leave a trail of 1px rectangles (like the pencil tool in Gimp), and when the user releases the mouse button Pd could select all the wires that have a point in common with the 1px trail. (Then delete the 1px trail [.x5236f0 delete pixeltrail])
There's probably a more efficient way, though.
-Jonathan