Hi all, the magnetic net mode uncovered some integer arithmetic errors whenever the coordinates are changed between screen and world (e.g. with the fix_x() function). http://sourceforge.net/tracker/index.php?func=detail&aid=1928544&group_id=161080&atid=818426
Thus I'd like to change the screen related variables from the screen coordinates to the world coordinates. The affected variables are start_x, second_x, last_x, loc_x and maybe some more. To do this I'd change this with the following steps: 1. create a set of world variables in GSCHEM_TOPLEVEL: start_x --> first_wx last_x --> second_wx second_x --> third_wx The renaming is intentional, because the second_x causes confusions in the net code whenever I read it. 2. add world coordinates to all screen events (mouse move, ...) SCREENtoWORLD(toplevel, x,y, &wx, &wy); wx = snap_grid(toplevel, wx); wy = snap_grid(toplevel, wy); 3. subsequently switch each drawing mode (net, line, box, ...) to use the world coordinates. (the coordinates are only converted back to screen inside drawing functions) 4. remove the old variables: start_x, last_x, ... 5. remove fix_x, fix_y functions from libgeda. Please let me know what you think about the changes. Any suggestions and additions are welcome. @Ales: When do you plan to create a new release of gEDA? Regards Werner _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
