Differences between Squeak and Cuis Morphs (was Re: More...morphic)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Differences between Squeak and Cuis Morphs (was Re: More...morphic)

Hannes Hirzel
Thank you Kent for the notes on the differences between Squeak and Cuis morphs.


I have reformatted your notes to markdown format and extended them
slightly. I copy them in below.

In addition I created a file in my fork of Cuis

https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md

and issued a pull request

https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/pulls

Regards
--Hannes



............................................................................................................................................
File: https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md
............................................................................................................................................



Notes on Morphic
================

Part of the Cuis development is the move to a new version of Morphic
called *Morphic3*.

The notes below indicate some of the changes and give the reasons for it.


Scalable graphics instead of bitmapped graphics
-----------------------------------------------

Morphic3 will have scalable graphics.

To achieve this the follwoing changes have been made

1. Integer coordinates of Squeak have been changed into float coordinates.
2. Morphs be positioned relative to their container, rather than a
single, global screen position (absolute positioning).


Cuis Morph attributes
---------------------

A **Cuis Morph** has
- a location (relative to its owner) and
- an extent.

This means that the origin of its rectangle is always 0@0.

You can see this in the difference in #drawOn: Squeak and **Cuis**.


           [Squeak]Morph>>drawOn: aCanvas
             aCanvas fillRectangle: self bounds
                    fillStyle: self fillStyle
                    borderStyle: self borderStyle.

versus


           [CUIS]Morph>>drawOn: aCanvas
          "A canvas is already set with a proper transformation from our
                       coordinates to those of the Canvas target."
            aCanvas fillRectangle: (0@0 extent: self morphExtent)
                color: self color


MorphExtension (Squeak) versus properties (Cuis)
------------------------------------------------

Following the Cuis philosophy, Morphs have been 'simplified'.

Note the difference in Ivars (instant variables) from Squeak.
Squeak Morphs look slimmer in terms of number of variables, but a
Squeak morph typically  holds
a MorphExtension instance -- which is not slim at all.

Cuis Morphs just use properties where needed.

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Differences between Squeak and Cuis Morphs (was Re: More...morphic)

Juan Vuletich-4
Merged. Thanks, Hannes!

Cheers,
Juan Vuletich

On 4/26/2014 7:11 AM, H. Hirzel wrote:

> Thank you Kent for the notes on the differences between Squeak and Cuis morphs.
>
>
> I have reformatted your notes to markdown format and extended them
> slightly. I copy them in below.
>
> In addition I created a file in my fork of Cuis
>
> https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md
>
> and issued a pull request
>
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/pulls
>
> Regards
> --Hannes
>
>
>
> ............................................................................................................................................
> File: https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md
> ............................................................................................................................................
>
>
>
> Notes on Morphic
> ================
>
> Part of the Cuis development is the move to a new version of Morphic
> called *Morphic3*.
>
> The notes below indicate some of the changes and give the reasons for it.
>
>
> Scalable graphics instead of bitmapped graphics
> -----------------------------------------------
>
> Morphic3 will have scalable graphics.
>
> To achieve this the follwoing changes have been made
>
> 1. Integer coordinates of Squeak have been changed into float coordinates.
> 2. Morphs be positioned relative to their container, rather than a
> single, global screen position (absolute positioning).
>
>
> Cuis Morph attributes
> ---------------------
>
> A **Cuis Morph** has
> - a location (relative to its owner) and
> - an extent.
>
> This means that the origin of its rectangle is always 0@0.
>
> You can see this in the difference in #drawOn: Squeak and **Cuis**.
>
>
>             [Squeak]Morph>>drawOn: aCanvas
>               aCanvas fillRectangle: self bounds
>                      fillStyle: self fillStyle
>                      borderStyle: self borderStyle.
>
> versus
>
>
>             [CUIS]Morph>>drawOn: aCanvas
>            "A canvas is already set with a proper transformation from our
>                         coordinates to those of the Canvas target."
>              aCanvas fillRectangle: (0@0 extent: self morphExtent)
>                  color: self color
>
>
> MorphExtension (Squeak) versus properties (Cuis)
> ------------------------------------------------
>
> Following the Cuis philosophy, Morphs have been 'simplified'.
>
> Note the difference in Ivars (instant variables) from Squeak.
> Squeak Morphs look slimmer in terms of number of variables, but a
> Squeak morph typically  holds
> a MorphExtension instance -- which is not slim at all.
>
> Cuis Morphs just use properties where needed.
>
> _______________________________________________
> Cuis mailing list
> [hidden email]
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Differences between Squeak and Cuis Morphs (was Re: More...morphic)

Hannes Hirzel
Thank you for merging, Juan.

https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md

Nacho, you see it is very straightforward to generate documentation
out of your questions and with answers like the ones of Ken and Juan
here on the ML.

Please ask more questions. It is easier to answer real questions when
to guess what people might want to know....

Markdown on github is very fast and the formatting is fine.

--Hannes

On 4/26/14, Juan Vuletich <[hidden email]> wrote:

> Merged. Thanks, Hannes!
>
> Cheers,
> Juan Vuletich
>
> On 4/26/2014 7:11 AM, H. Hirzel wrote:
>> Thank you Kent for the notes on the differences between Squeak and Cuis
>> morphs.
>>
>>
>> I have reformatted your notes to markdown format and extended them
>> slightly. I copy them in below.
>>
>> In addition I created a file in my fork of Cuis
>>
>> https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md
>>
>> and issued a pull request
>>
>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/pulls
>>
>> Regards
>> --Hannes
>>
>>
>>
>> ............................................................................................................................................
>> File:
>> https://github.com/hhzl/Cuis-Smalltalk-Dev/blob/master/NotesOnMorphic.md
>> ............................................................................................................................................
>>
>>
>>
>> Notes on Morphic
>> ================
>>
>> Part of the Cuis development is the move to a new version of Morphic
>> called *Morphic3*.
>>
>> The notes below indicate some of the changes and give the reasons for it.
>>
>>
>> Scalable graphics instead of bitmapped graphics
>> -----------------------------------------------
>>
>> Morphic3 will have scalable graphics.
>>
>> To achieve this the follwoing changes have been made
>>
>> 1. Integer coordinates of Squeak have been changed into float
>> coordinates.
>> 2. Morphs be positioned relative to their container, rather than a
>> single, global screen position (absolute positioning).
>>
>>
>> Cuis Morph attributes
>> ---------------------
>>
>> A **Cuis Morph** has
>> - a location (relative to its owner) and
>> - an extent.
>>
>> This means that the origin of its rectangle is always 0@0.
>>
>> You can see this in the difference in #drawOn: Squeak and **Cuis**.
>>
>>
>>             [Squeak]Morph>>drawOn: aCanvas
>>               aCanvas fillRectangle: self bounds
>>                      fillStyle: self fillStyle
>>                      borderStyle: self borderStyle.
>>
>> versus
>>
>>
>>             [CUIS]Morph>>drawOn: aCanvas
>>            "A canvas is already set with a proper transformation from our
>>                         coordinates to those of the Canvas target."
>>              aCanvas fillRectangle: (0@0 extent: self morphExtent)
>>                  color: self color
>>
>>
>> MorphExtension (Squeak) versus properties (Cuis)
>> ------------------------------------------------
>>
>> Following the Cuis philosophy, Morphs have been 'simplified'.
>>
>> Note the difference in Ivars (instant variables) from Squeak.
>> Squeak Morphs look slimmer in terms of number of variables, but a
>> Squeak morph typically  holds
>> a MorphExtension instance -- which is not slim at all.
>>
>> Cuis Morphs just use properties where needed.
>>
>> _______________________________________________
>> Cuis mailing list
>> [hidden email]
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
>
>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org