Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000803 [Squeak] Morphic major always 01-07-05 06:57 02-16-08 01:57
Reporter wiz View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version 3.9
Summary 0000803: Runaway polygons when resizing due to referencePosition feedback
Description This affects versions of squeak before 3.9 also.

For this one
Get a polygon. Make it large. Drag a point far to the right..
Rotate it a little with the blue halo handle.
This sets the Reference Position.
Rotate it back to its original position and delete the right most point.
The ref point is now outside the bounds of the poly and to the right.
Add back a point to the poly but keep it to the left this time.
Get the halo and use the resize handle to grow the poly by moving the handle to the right just a little.
The feedback loop sends the every growing poly off the left of the screen..

.This is a very surprising and distressing behavior when it happens and your not expecting it.

Additional Information This is clearly not what was intended.

Several suggestions.
Deleteing a point should remove the reference position property.
So should stopping the blue handle rotation if thats what caused it to be set.
Rather than relying on super the default reference position should be self vertices average rounded.
Same with the center of rotation.

I am looking for comments from more experienced hands before venturing a fix. The above changes seem logical to me but I don't know what features rely on the current contract. Any useful folklore out there?

Attached Files

- Relationships
related to 0005498new  Polygons don't render/orient submorphs correctly when tilted or grown. 

- Notes
(0001110 - 636 - 660 - 660 - 660 - 660 - 660)
01-29-05 17:46

I agree with removing the ref position (or at least resetting it) when adding or deleting a point. Perhaps something that would help, though, is to remember the offset between the default ref pos (average of vertices sounds OK to me) and the user-set point (if any). If the offset is close to 0 (as it would be if it were set from a default) we can remove it safely. If not, we can apply the offset to the new average after deleting (or adding!) a point.

The rotationCenter, of course, should refer to the same point.

Removing the ref pos on stopping rotation could be done the same way: just compare the ref pos with the default.
(0011816 - 187 - 187 - 187 - 320 - 320 - 320)
nicolas cellier
02-16-08 01:57

See also bug 0001035, referencePosition is also invariant position when you change polygon extent... Even its default bounds center value makes the bug happen. Is this an intended behavior?

- Issue History
Date Modified Username Field Change
01-07-05 06:57 wiz New Issue
01-29-05 17:46 ned Note Added: 0001110
10-09-07 01:45 matthewf Relationship added related to 0005498
02-16-08 01:57 nicolas cellier Note Added: 0011816

Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
44 total queries executed.
34 unique queries executed.
Powered by Mantis Bugtracker