thanks igor I was thinking about that too but I thought that it could not be that simple :)

On 17/4/14 02:20, Igor Stasenko wrote:



On 15 April 2014 23:15, pharo4s...@free.fr <mailto:pharo4s...@free.fr> <pharo4s...@free.fr <mailto:pharo4s...@free.fr>> wrote:

    There a plenty of isKindOf: InfiniteForm in the system and I was
    trying to understand how we could get rid of them.
    How other systems handle pattern based color filling shape?

why bother?

Just use The God's Hammer Dispatch (AKA Non-intuitive way of programming
for those who don't think in objects ;) :

fillRectangle: aRectangle basicFillStyle: aFillStyle
    "Fill the given rectangle with the given, non-composite, fill style."

    | pattern |

    (aFillStyle isKindOf: InfiniteForm) ifTrue: [
        ^self infiniteFillRectangle: aRectangle fillStyle: aFillStyle
    ].


=>

fillRectangle: aRectangle basicFillStyle: aFillStyle
    "Fill the given rectangle with the given, non-composite, fill style."
    ^ aFillStyle fillRectangle: aRectangle onCanvas: self


..and then after refactoring it will look exactly how Athens doing it,
because if you rename fill style with "paint" and rectangle with "shape" you will see it :)


    Stef




--
Best regards,
Igor Stasenko.

Reply via email to