Cairo__Matrix.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 10 Jul 2008 09:30:44 +0000
changeset 1 2439fb18f3dc
child 3 f4f599f2a1b5
permissions -rw-r--r--
Initial commit.

"{ Package: 'stx:goodies/libcairo' }"

"{ NameSpace: Cairo }"

ExternalStructure subclass:#Matrix
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Cairo - C Types'
!

!Matrix class methodsFor:'accessing'!

libraryName

	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].

	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].

	self error:'Library name for host OS is not known'

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!Matrix class methodsFor:'primitives'!

primInit: matrix xx: xx yx: yx xy: xy yy: yy x0: x0 y0: y0 

	<cdecl: void "cairo_matrix_init" ( Cairo::Matrix double double double double double double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primInitIdentity: matrix 

	<cdecl: void "cairo_matrix_init_identity" ( Cairo::Matrix ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primInitRotate: matrix radians: radians 

	<cdecl: void "cairo_matrix_init_rotate" ( Cairo::Matrix double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primInitScale: matrix sx: sx sy: sy 

	<cdecl: void "cairo_matrix_init_scale" ( Cairo::Matrix double double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primInitTranslate: matrix tx: tx ty: ty 

	<cdecl: void "cairo_matrix_init_translate" ( Cairo::Matrix double double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primInvert: matrix 

	<cdecl: int32 "cairo_matrix_invert" ( Cairo::Matrix ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primMultiply: result a: a b: b 

	<cdecl: void "cairo_matrix_multiply" ( Cairo::Matrix Cairo::Matrix Cairo::Matrix ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primRotate: matrix radians: radians 

	<cdecl: void "cairo_matrix_rotate" ( Cairo::Matrix double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primScale: matrix sx: sx sy: sy 

	<cdecl: void "cairo_matrix_scale" ( Cairo::Matrix double double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primTransformDistance: matrix dx: dx dy: dy 

	<cdecl: void "cairo_matrix_transform_distance" ( Cairo::Matrix pointer pointer ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primTransformPoint: matrix x: x y: y 

	<cdecl: void "cairo_matrix_transform_point" ( Cairo::Matrix pointer pointer ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primTranslate: matrix tx: tx ty: ty 

	<cdecl: void "cairo_matrix_translate" ( Cairo::Matrix double double ) >
	self primitiveFailed

    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!Matrix methodsFor:'accessing - primitives'!

primX0

	self doubleAt:1 + 32

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primX0: value

	self doubleAt:1 + 32 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primXx

	self doubleAt:1 + 0

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primXx: value

	self doubleAt:1 + 0 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primXy

	self doubleAt:1 + 16

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primXy: value

	self doubleAt:1 + 16 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primY0

	self doubleAt:1 + 40

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primY0: value

	self doubleAt:1 + 40 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primYx

	self doubleAt:1 + 8

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primYx: value

	self doubleAt:1 + 8 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primYy

	self doubleAt:1 + 24

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

primYy: value

	self doubleAt:1 + 24 put:value

    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !