Hi Ales,

On Montag, 4. Februar 2008, Ales Hvezda wrote:
>       Please do not push the net magnetic mode patch as is.   I looked
> it over when I received it and it needs careful review as there were
> some things in it I thought were kind of odd.  Yes, I did experience
> random crash with the patch as well.

The second branch in my repo is more a rewrite than a cleanup.

>       Also, please do not push any changes to the repository without
> there being a clear understanding of the license and copyright of the
> contribution.  Anonymous or pseudo-anonymous code should never make
> it into the main repository.

Ok. I'll try to find and ask Thomas Arndt. Maybe he knows who "Franz" 
is. Do you have received any notes with the patch?

I guess it will be hard to find any nontrivial code from the original 
patch in the new reworked patch:
http://repo.or.cz/w/geda-gaf/werner.git?a=shortlog;h=magnetic3

I've changed/rewrote:
* The code searching for the closest possible connection.
* The code to snap to the first end (o_net_start)
* The code to snap to the last end (o_net_end)

I've not changed:
* the call from x_event.c in STARTDRAWNET state
* the code to draw and erase the magnetic rectangle
* function and variable names.

>       Finally, global changes to established mechanism (such as how
> nets are drawn/routed/etc...) should be configurable as to not annoy
> existing and happy users.

The magnetic mode is not configurable, yet, but you can turn it on and 
off in the option menu, default is off.

Some notes how the code now works.

In STARTDRAWNET state:
Search for the closest possible connection and put the magnetic marker 
to that point.
Draw/Undraw it if required.

Action o_net_start:
Take the position of the magnetic marker and take it as start point 
instead of the event position.

In rubbernet state:
Search for the closest possible connection and put the magnetic marker 
to that point.
Draw/Undraw it if required.

Action o_net_end:
If there's a magnetic marker, manipulate the 3 points of the L-shape 
net. Drawing code is the same as before.


Note: The search for new connections is a linear search over all objects 
whenever the mouse is moved. I'm not sure if it's fast enough for large 
circuits.

Regards
Werner


_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to