Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0004440 [Squeak] Morphic minor always 08-09-06 00:46 11-19-06 07:07
Reporter wiz View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version 3.9
Summary 0004440: What should happen when an object is picked up from a rendered (transformed) PasteupMorph?
Description For this interesting test

In a fresh squeak (7051 or 6665 or 5976 I have gone back further than 3.7)
from objects>basic get an ellipse, a polygon
-put them aside we will use them shortly.
from objects>presentation get a paste up morph
-rotate the paste up morph by 90 degrees.

Now pick up the ellipse and drop it in the ellipse and drop it in the rotated paste up
-observe that the ellipse rotates 90 degrees.
now pick up the ellipse
observe it is still rotated.
picking it up and dropping it do not furthur change it.
now move the ellipse away from the paste up and drop it.
-observe it returns to its normal orientation.

cycle these motions.
the ellipse goes thru a cycle of changes but does not permanently change.

Now for the inconsistency.

Try the same thing with the polygon.

Dropping the polygon rotates it.
Picking it up
- observe it keeps its rotated shape.
Drop it again
- it rotates again.

and it keeps rotating with each cycle.

The above is a relatively tame and safe way to demonstate this effect.

For dramatic effect you can grow the rotated paste up morph and then counterrotate it . Now you have a pasteup which magnifies.

Ellipses behave as descripbed before.

Polygons grow and grow. If you cycle enough the polygon will fill the paste up. If you continue. If you continue to click on the polygon it will crash the system. ( Large polygons allocate huge amounts of memory for the contains point cache see mantis 0000843) .
Additional Information The hand belongs to the world.

When it picks up an object from a rendered morph it philosophically should reverse the rendering and hold the object as it would appear in the world not in the rendered pasteup.

This it does not do. When it picks up the object it clones the renderer. Then when the object is actually dropped into the world the renderer is removed.

Polygons do their own rendering. And this doesn't work with the hands scheme.

How to fix?

I just came accross this malbehavior so I am just guessing.

-The cleanest way would unrender things when they are picked up.

-or you could just unrender polygons.

-or the polygons could keep track of its transformation(scale and rotation) while it is being held. Then when dropped it would transform itself to the extent of the differerence of the two transforms.

Yours in service, --Jerome Peace
Attached Files

- Relationships

- Notes
(0008325 - 1276 - 1366 - 1366 - 1366 - 1366 - 1366)
11-19-06 07:07

I have grown in my thinking about this.

The user story I want is simple:

If I drop (and/or embed) an object onto a tilted morph. I want the object to appear as I dropped it at the same psition, orientation and scale that it was at originally. I do not want it do appear outwardly to have changed in any way.

When I pick up a morph I want it to appear as it did when I picked it up.

So if the morph is unflexed in the hand and it is being dropped into a flexed morph the object should be placed and counter-rendered so that from the users point of view it will have undergone no change in appearence.

If you lift an object out of a rendered morph it should have a renderer that makes it look the same as it did before it was lifted. And it should appear in the hand as it did in the morph.

When this picked up object is dropped back into the world it should retain its rendering.
Flex shell should only be removed when the object is scaled and oriented back to normal.

So if you drop an unrendered morph into a rendered morph it becomes counter-rendered within the morph. When you pull it immediately back out you get it in the hand unrendered because the squeak notices that the rendering and counter rendering cancel (with respect to the hands world)

- Issue History
Date Modified Username Field Change
08-09-06 00:46 wiz New Issue
11-19-06 07:07 wiz Note Added: 0008325

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