Karl Ramberg uploaded a new version of Connectors to project Etoys: http://source.squeak.org/etoys/Connectors-kfr.188.mcz
==================== Summary ====================
Name: Connectors-kfr.188 Author: kfr Time: 30 May 2010, 1:48:03 am UUID: 2707f7a6-10ce-f343-bac3-aed3a747f5eb Ancestors: Connectors-bf.187
Fix the overlap logic in Morph>>overlapsShadowForm:bounds:
Fix for not including self in testing for overlaps i Player>>overlapsAny:
Refactor Player>>overlaps: to use Morph>>overlapsShadowForm:bounds:
=============== Diff against Connectors-bf.187 ===============
Item was added: + ----- Method: Morph>>overlapsShadowForm:bounds: (in category '*connectors-geometry') ----- + overlapsShadowForm: itsShadow bounds: itsBounds + "Answer true if itsShadow and my shadow overlap at all" + | overlapExtent overlap myRect myShadow goalRect goalShadow bb | + overlap _ self fullBounds intersect: itsBounds. + overlapExtent _ overlap extent. + overlapExtent > (0 @ 0) + ifFalse: [^ false]. + myRect := overlap translateBy: 0 @ 0 - self topLeft. + myShadow := (self imageForm contentsOfArea: myRect) stencil. + goalRect := overlap translateBy: 0 @ 0 - itsBounds topLeft. + goalShadow := (itsShadow contentsOfArea: goalRect) stencil. + + "compute a pixel-by-pixel AND of the two stencils. Result will be black + (pixel value = 1) where black parts of the stencils overlap" + bb := BitBlt toForm: myShadow. + bb + copyForm: goalShadow + to: 0 @ 0 + rule: Form and. + + ^(bb destForm tallyPixelValues second) > 0 !
etoys-dev@lists.squeakfoundation.org