2014-03-22 12:20 GMT+01:00 Nicolas Cellier <
nicolas.cellier.aka.n...@gmail.com>:

> From the st80 ages, rectangle have allways been oriented.
> You have an origin and a corner inst var, not 2 corners or vertices.
> And you have creation messages Rectangle class>>origin:corner:
> The conventions are that of latin scribes, the orientation of rectangle
> should be (left->right , top->down)
>
> There is an assumption that a rectangle with negative width (right->left)
> or height (bottom->top) should be treated as empty.
> And this was globally well maintained except a few breakages introduced in
> Squeak along the years (but I hope I corrected most of the slips since
> then).
>
> Now Igor and Stephane had another view more geometric and un-oriented, and
> wanted to change conventions/handling of empty rectangles in Pharo.
> I don't know how far they went, or even if it is feasible at all... IMO,
> it's a recipe for maximizing breakage/gain ratio.
>
> Note that VW has Rectangle class>>vertex:vertex:, and we probably should
> add such message...
>
>
>
> Something like:

Point>>vertex: aPoint
    ^aRectangle vertex: self vertex: aPoint

Rectangle class>>vertex: point1 vertex: point2
    ^self origin: (point1 min: point2) corner: (point1 max: point2)


>
> 2014-03-21 15:15 GMT+01:00 Noury Bouraqadi <bouraq...@gmail.com>:
>
> Inverting the origin and the corner of a rectangle changes the result of
>> intersection.
>> I guess it's a bug, though I imagine that changing the code of Rectangle
>> is likely to have deep/undesired consequences..
>>
>> (0@0 corner: 100@100) intersects: (-50@ -50 corner: 80@80) ==> true
>> (100@100 corner: 0@0) intersects: (-50@ -50 corner: 80@80) ==> false
>>  !!!!
>>
>> Noury
>>
>>
>>
>>
>>
>

Reply via email to