Cairo__PatternGradientRadial.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 05 Apr 2016 08:02:32 +0100
changeset 76 f3deda9cea3e
parent 63 054f0513ea65
child 88 9d51db2ba641
permissions -rw-r--r--
Oops, fixed CairoGraphicsContext>>width:height: Must test whether a Cairo context has been created. If not, we're done.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/libcairo' }"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cairo }"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PatternGradient subclass:#PatternGradientRadial
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cairo-Objects'
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!PatternGradientRadial methodsFor:'accessing'!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
circles
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    "Gets the gradient circles."
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    | cx0CellPtr cy0CellPtr radius0CellPtr cx1CellPtr cy1CellPtr radius1CellPtr circles |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    cx0CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    cy0CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    radius0CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    cx1CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    cy1CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    radius1CellPtr := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    [ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
        CPrimitives cairo_pattern_get_radial_circles: self _: cx0CellPtr _: cy0CellPtr _: radius0CellPtr _: cx1CellPtr _: cy1CellPtr _: radius1CellPtr.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
        circles := Array with: (cx0CellPtr doubleAt:1) @ (cy0CellPtr doubleAt:1) 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
                         with: (radius0CellPtr doubleAt:1)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
                         with: (cx1CellPtr doubleAt:1) @ (cy1CellPtr doubleAt:1) 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
                         with: (radius1CellPtr doubleAt:1)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    ] ensure:[ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
        cx0CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
        cy0CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
        radius0CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
        cx1CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
        cy1CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
        radius1CellPtr free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    ].
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    ^ circles
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "Created: / 15-03-2016 / 21:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
! !
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43