'From Squeak3.1alpha of 28 February 2001 [latest update: #4149] on 12 June 2001 at 6:52 am'! "Change Set: FlashScripting Date: 12 June 2001 Author: Andreas Raab Fixes various issues with scripting flash morphs."! !Morph methodsFor: 'geometry eToy' stamp: 'ar 6/12/2001 05:23'! setDirectionFrom: aPoint | delta degrees | delta _ (self transformFromWorld globalPointToLocal: aPoint) - self referencePosition. degrees _ delta degrees + 90.0. self forwardDirection: (degrees \\ 360) rounded. ! ! !HaloMorph methodsFor: 'private' stamp: 'ar 6/12/2001 05:24'! setDirection: anEvent with: directionHandle "The user has let up after having dragged the direction arrow; now set the forward direction of the actual SketchMorph accordingly" anEvent hand obtainHalo: self. target setDirectionFrom: directionHandle center. self endInteraction! ! !MatrixTransformMorph methodsFor: 'geometry' stamp: 'ar 6/12/2001 06:18'! computeBounds | subBounds box | (submorphs isNil or:[submorphs isEmpty]) ifTrue:[^self]. box _ nil. submorphs do:[:m| subBounds _ self transform localBoundsToGlobal: m bounds. box ifNil:[box _ subBounds] ifNotNil:[box _ box quickMerge: subBounds]. ]. box ifNil:[box _ 0@0 corner: 20@20]. fullBounds _ bounds _ box! ! !MatrixTransformMorph methodsFor: 'geometry' stamp: 'ar 6/12/2001 06:38'! privateFullMoveBy: delta self privateMoveBy: delta. transform offset: transform offset + delta.! ! !MatrixTransformMorph methodsFor: 'geometry' stamp: 'ar 6/12/2001 05:11'! rotationCenter | pt | pt _ self transform localPointToGlobal: super rotationCenter. ^pt - bounds origin / bounds extent asFloatPoint! ! !MatrixTransformMorph methodsFor: 'geometry' stamp: 'ar 6/12/2001 05:07'! rotationCenter: aPoint super rotationCenter: (self transform globalPointToLocal: bounds origin + (bounds extent * aPoint))! ! !MatrixTransformMorph methodsFor: 'flexing' stamp: 'ar 6/12/2001 06:02'! innerAngle ^(transform a11 @ transform a21) degrees! ! !MatrixTransformMorph methodsFor: 'flexing' stamp: 'ar 6/12/2001 05:00'! rotateBy: delta | pt m | delta = 0.0 ifTrue:[^self]. self changed. pt _ self transformFromWorld globalPointToLocal: self referencePosition. m _ MatrixTransform2x3 withOffset: pt. m _ m composedWithLocal: (MatrixTransform2x3 withAngle: delta). m _ m composedWithLocal: (MatrixTransform2x3 withOffset: pt negated). transform _ self transform composedWithLocal: m. self computeBounds. self changed.! ! !MatrixTransformMorph methodsFor: 'eToy-support' stamp: 'ar 6/12/2001 06:03'! heading "Return the receiver's heading (in eToy terms)" ^ self forwardDirection + self innerAngle! ! !MatrixTransformMorph methodsFor: 'eToy-support' stamp: 'ar 6/12/2001 06:03'! heading: newHeading "Set the receiver's heading (in eToy terms)" self rotateBy: ((newHeading - self forwardDirection) - self innerAngle).! ! !MatrixTransformMorph methodsFor: 'eToy-support' stamp: 'ar 6/12/2001 05:50'! setDirectionFrom: aPoint | delta degrees | delta _ (self transformFromWorld globalPointToLocal: aPoint) - super rotationCenter. degrees _ delta degrees + 90.0. self forwardDirection: (degrees \\ 360) rounded. ! ! !FlashPlayerMorph methodsFor: 'geometry' stamp: 'ar 6/12/2001 06:37'! privateFullMoveBy: delta self handleBoundsChange:[super privateMoveBy: delta]! ! !TransformationMorph methodsFor: 'e-toy support' stamp: 'ar 6/12/2001 05:23'! setDirectionFrom: aPoint | delta degrees inner | inner _ self renderedMorph. inner == self ifTrue:[^self]. delta _ (inner transformFromWorld globalPointToLocal: aPoint) - inner referencePosition. degrees _ delta degrees + 90.0. self forwardDirection: (degrees \\ 360) rounded. ! ! MatrixTransformMorph removeSelector: #addOptionalHandlesTo:box:! MatrixTransformMorph removeSelector: #referencePosition! MatrixTransformMorph removeSelector: #referencePosition:!