[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: sloppy rupper band mode



On Fri, Oct 19, 2007 at 02:26:49PM +0000, Kai-Martin Knaak wrote:
> On Wed, 17 Oct 2007 16:16:23 -0700, Ben Jackson wrote:
> 
> > File a SF bug and point me at it and I'll see about fixing it.
> 
> done. (ID 1816572)
> 
> Looking forward to fix for this crippling non-feature,

There are a few things going on here:

1)  If you move a line or its endpoint:  For purposes of rubberbanding,
it is considered connected to all of the line segments whose ends overlap
the moving line's end(s).  The specific issue you report is due to the
short diagonal segment being so short that the end lines overlap each
other.  In fact, a line where both endpoints overlap the moving point (the
joining line in your case) won't even necessarily pick the right end of
the line.  That's easy to fix, but doesn't address the real problem.

2)  If you move an element and one of the pads touches both ends of a
line (easy to do if your line is narrower than the pad and you don't
control where it jumps back onto the grid), only one end of the line
will move.

Now both of these things would be "solved" if touching both ends of a
line just moved the whole segment.  Your tiny segment would not stretch,
but instead it would remain in the same shape and the other long segment
would stretch.  Not terrible, not fabulous.  For the pad case (or polygon
case), this is probably the right thing.

For the line case, another alternative would be to restrict the
rubberbanding to exactly-connected lines.  However, it currently works
in your favor if you make a hand-drawn line on-grid to an off-grid line
and only overlap without joining using an explicit segment.

It could also pick one BEST endpoint to connect to (closest eg, although
the data structures are not really set up for this), but perhaps someone
really cares about a 3+ line intersection case.  It could ignore points
that are (perhaps exactly) connected to segments that are already going
to rubberband, on the theory that one continuous line should only move
one point.  This is also tricky because we don't know what order we'll
see the lines (and the data structures are again not helpful).

I'm open to suggestions.

-- 
Ben Jackson AD7GD
<ben@xxxxxxx>
http://www.ben.com/


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user