SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

Mantis - Squeak
Viewing Issue Advanced Details
5560 Morphic major always 12-01-06 09:56 10-09-07 02:41
wiz  
 
normal  
new 3.10  
open  
none    
none  
0005560: MatrixTransformationMorph needs examining and fixing.
This is a restart of the report 0000857.

See related problems in 0002116 and 0000851.


To see one of the mtm problems:
From Objects
Get a mixed polygon. (Basic)
Get a true type banner ( Demo)
  from red menu edit contents and accept. (This to get the shorted 'some text' banner)

Embed the polygon into the true type.

Bring up halos on the true type and rotate 360 degrees.

now lift the true type and move it elsewhere.

Notice that the solid fill of the polygon moves with its owner. while the border of the polygon for the most part stays put.
Some strange miscommunication here.
I intend to collect here symptoms and fixes to get mtm to become a first class member of the squeak morph community. Or to decide why that is not possible.

Yours in service, --Jerome Peace
related to 0004280new  The message #transform is used with two incompatible meanings. Gaaahhh! 
related to 0005674new  Why doesn't heading = forwardDirection + rotationDegrees for all morphs all the time? 
related to 0006564new  [RFE] Halos need to be refactored to be more along the lines of Menus 
parent of 0005605assigned andreas Squeak oxymorons: MatrixTransform2x3 identity does not behave as an identiy transformation. 
parent of 0000857new  MatrixTransformationMorph is very badly broken in many place. It probably never worked. 
parent of 0000577closed  MatrixTransformMorph>>innerAngle references uninstantiated instvar 
parent of 0002116closed MarcusDenker Halo rotation of a true type font throws up a debug window. 
parent of 0005719new  In Squeak 6665 using halos to rotate the squeak logo's nose will get an DNU 
child of 0006567new  Mother of Morphic Cleanup Tweak 
Not all the children of this issue are yet resolved or closed.

Notes
(0008531)
wiz   
12-03-06 10:08   
In 7067 #rotationCenter: has 3 implementers
Morph
PolygonMorph
CircleMorph
and
MatrixTransformantionMorph

Morph expects the argument to be the rotationCenter (I.E. a point relative to the extent. And sets the value of the property: #rotationCenter

PolygonMorph expects the argument to be the rotationCenter but it sets the property: #referencePoint from the argument times bounds extent plus the bound origin. It does not set a property for #rotationCenter.

MatrixTransformationMorph expects the argument to be the rotationCenter but then calls super with the referencePoint as the argument not the rotation center. This is very wrong.

setRotationCenterFrom: aPoint expects as its argument a reference point. but it calls #rotationCenter: so if it was used for the super call it would endlessly loop.

MatrixTransformationMorph>>#rotationCenter calls super but then treats what is returned as the referencePosition doing a convesion to make it a rotationCenter.

So if both to these methods were eliminated in mtm...
the protocol would work consistently yet I suspect the end result would not be on target.
(I did try it and it indeed did not cure everything. As I moved things around it grew until the embeded polygon blew up memory (bug 0000843).

Morph referencePosition relies on bounds and rotationCenter to determine where the referencePoint is. When morphs flex their bounds change and can not be reliable as a reference. That's why halo morph has to do all these adjust afters.

No the referencePoint will have to be set just as Polygon morph does.


Bugtrackers comment:

The messages here fly fast and thick. The use of super makes everything stiff and awkward. It becomes nigh on to impossible to keep everything in mind at once as the experienced coders misunderstanding of his own code conventions shows. Also trying to find an elegant way back to sanity is proving difficult.

Well back to the drawing screen.

Yours in service, -- Jerome Peace