On Sat, 2006-12-23 at 20:16 +0100, Carlos Nieves Ónega wrote: > Hi Peter, > You are right. Screen coords and world coords have different sense. > You can check it opening gschem, and showing the coordinates windows (oc > hotkey). > > Regards, > > Carlos
So it is... I've never noticed the coordinate window before! I remember having some difficulties with bounds checking for hit-detection in world coords - (And grip locations too), due to the apparent need to change the sign of any addition or subtraction intended to operate in a particular direction. I think then, there are a few bugs in gschem's object world bounds functions. (I've corrected in my big diff which I'm separating). Sometimes, the code assigns *top for a world bound, to the min() of various coords, where for world coords it should be max() according to our observations in the coord window. Cases I've got fixed here are: world_get_box_bounds() world_get_bus_bounds() world_get_circle_bounds() world_get_line_bounds() world_get_net_bounds() world_get_picture_bounds() world_get_pin_bounds() (I've changed many implementations to look like: + *left = min( line->x[0], line->x[1] ); + *top = max( line->y[0], line->y[1] ); + *right = max( line->x[0], line->x[1] ); + *bottom = min( line->y[0], line->y[1] ); ) This anomaly is quite prevalent thought the code.. Is it possible that world coordinates were never _meant_ to be opposite to screen-coords in up/down sense? Ales - is there a definition of world / screen coords, and their origins + senses? Happy Holidays... its 25th now, so Merry Christmas to those who celebrate it! Peter C. _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
