version	U12.1.00
uid	xforms.u1-1788539922-0
impl	error
link	matrix.u
global	7
	0,000005,transform,2
	1,000005,transform_points,2
	2,000005,set_scale,2
	3,000005,set_trans,2
	4,000005,set_xshear,1
	5,000005,set_yshear,1
	6,000005,set_rotate,1

proc transform
	local	0,001000,p
	local	1,001000,M
	local	2,000020,pl
	local	3,000020,i
	local	4,000000,put
	local	5,000000,mult_matrix
	local	6,000000,copy
	con	0,002000,1,1
	con	1,004000,1.0
	declend
	filen	xforms.icn
	line	30
	colm	11
	synt	any
	mark	L1
	line	35
	colm	4
	synt	every
	mark0
	var	4
	pnull
	pnull
	var	2
	pnull
	pnull
	line	35
	colm	22
	synt	any
	llist	0
	line	35
	colm	21
	synt	any
	llist	1
	line	35
	colm	18
	synt	any
	asgn
	int	0
	line	35
	colm	26
	synt	any
	subsc
	mark	L4
	pnull
	var	0
	line	35
	colm	32
	synt	any
	bang
	line	35
	colm	35
	synt	any
	esusp
	goto	L5
lab L4
	real	1
lab L5
	line	35
	colm	13
	synt	any
	invoke	2
	pop
lab L2
	efail
lab L3
	line	35
	colm	4
	synt	endevery
	unmark
lab L1
	mark	L6
	pnull
	var	2
	var	5
	var	2
	var	1
	line	39
	colm	21
	synt	any
	invoke	2
	line	39
	colm	7
	synt	any
	asgn
	unmark
lab L6
	mark	L7
	pnull
	var	0
	var	6
	var	0
	line	43
	colm	13
	synt	any
	invoke	1
	line	43
	colm	6
	synt	any
	asgn
	unmark
lab L7
	mark	L8
	line	44
	colm	4
	synt	every
	mark0
	pnull
	var	3
	pnull
	int	0
	pnull
	var	0
	line	44
	colm	20
	synt	any
	size
	push1
	line	44
	colm	17
	synt	any
	toby
	line	44
	colm	12
	synt	any
	asgn
	pop
	mark0
	pnull
	pnull
	var	0
	var	3
	line	45
	colm	8
	synt	any
	subsc
	pnull
	pnull
	var	2
	int	0
	line	45
	colm	17
	synt	any
	subsc
	var	3
	line	45
	colm	20
	synt	any
	subsc
	line	45
	colm	12
	synt	any
	asgn
	unmark
lab L9
	efail
lab L10
	line	44
	colm	4
	synt	endevery
	unmark
lab L8
	mark	L11
	mark	L12
	var	0
	line	47
	colm	4
	synt	any
	pret
lab L12
	synt	any
	pfail
	unmark
lab L11
	pnull
	line	49
	colm	1
	synt	any
	pfail
	end
proc transform_points
	local	0,001000,pl
	local	1,001000,M
	local	2,000020,xformed
	local	3,000000,put
	local	4,000000,transform
	declend
	line	51
	colm	11
	synt	any
	mark	L1
	line	54
	colm	4
	synt	every
	mark0
	var	3
	pnull
	var	2
	pnull
	line	54
	colm	25
	synt	any
	llist	0
	line	54
	colm	22
	synt	any
	asgn
	pnull
	var	4
	pnull
	var	0
	line	54
	colm	40
	synt	any
	bang
	var	1
	line	54
	colm	39
	synt	any
	invoke	2
	line	54
	colm	29
	synt	any
	bang
	line	54
	colm	13
	synt	any
	invoke	2
	pop
lab L2
	efail
lab L3
	line	54
	colm	4
	synt	endevery
	unmark
lab L1
	mark	L4
	mark	L5
	var	2
	line	56
	colm	4
	synt	any
	pret
lab L5
	synt	any
	pfail
	unmark
lab L4
	pnull
	line	58
	colm	1
	synt	any
	pfail
	end
proc set_scale
	local	0,001000,x
	local	1,001000,y
	local	2,000020,M
	local	3,000000,identity_matrix
	con	0,002000,1,3
	con	1,002000,1,1
	con	2,002000,1,2
	declend
	line	60
	colm	11
	synt	any
	mark	L1
	pnull
	var	2
	var	3
	int	0
	int	0
	line	63
	colm	24
	synt	any
	invoke	2
	line	63
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	pnull
	var	2
	int	1
	line	65
	colm	5
	synt	any
	subsc
	int	1
	line	65
	colm	8
	synt	any
	subsc
	var	0
	line	65
	colm	12
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	pnull
	pnull
	var	2
	int	2
	line	66
	colm	5
	synt	any
	subsc
	int	2
	line	66
	colm	8
	synt	any
	subsc
	var	1
	line	66
	colm	12
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	mark	L5
	var	2
	line	68
	colm	4
	synt	any
	pret
lab L5
	synt	any
	pfail
	unmark
lab L4
	pnull
	line	70
	colm	1
	synt	any
	pfail
	end
proc set_trans
	local	0,001000,x
	local	1,001000,y
	local	2,000020,M
	local	3,000000,identity_matrix
	con	0,002000,1,3
	con	1,002000,1,1
	con	2,002000,1,2
	declend
	line	72
	colm	11
	synt	any
	mark	L1
	pnull
	var	2
	var	3
	int	0
	int	0
	line	75
	colm	24
	synt	any
	invoke	2
	line	75
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	pnull
	var	2
	pnull
	var	2
	line	77
	colm	6
	synt	any
	size
	line	77
	colm	5
	synt	any
	subsc
	int	1
	line	77
	colm	9
	synt	any
	subsc
	var	0
	line	77
	colm	13
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	pnull
	pnull
	var	2
	pnull
	var	2
	line	78
	colm	6
	synt	any
	size
	line	78
	colm	5
	synt	any
	subsc
	int	2
	line	78
	colm	9
	synt	any
	subsc
	var	1
	line	78
	colm	13
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	mark	L5
	var	2
	line	80
	colm	4
	synt	any
	pret
lab L5
	synt	any
	pfail
	unmark
lab L4
	pnull
	line	82
	colm	1
	synt	any
	pfail
	end
proc set_xshear
	local	0,001000,x
	local	1,000020,M
	local	2,000000,identity_matrix
	con	0,002000,1,3
	con	1,002000,1,1
	con	2,002000,1,2
	declend
	line	84
	colm	11
	synt	any
	mark	L1
	pnull
	var	1
	var	2
	int	0
	int	0
	line	87
	colm	25
	synt	any
	invoke	2
	line	87
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	pnull
	var	1
	int	1
	line	89
	colm	5
	synt	any
	subsc
	int	2
	line	89
	colm	8
	synt	any
	subsc
	var	0
	line	89
	colm	12
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	mark	L4
	var	1
	line	91
	colm	4
	synt	any
	pret
lab L4
	synt	any
	pfail
	unmark
lab L3
	pnull
	line	93
	colm	1
	synt	any
	pfail
	end
proc set_yshear
	local	0,001000,y
	local	1,000020,M
	local	2,000000,identity_matrix
	con	0,002000,1,3
	con	1,002000,1,2
	con	2,002000,1,1
	declend
	line	95
	colm	11
	synt	any
	mark	L1
	pnull
	var	1
	var	2
	int	0
	int	0
	line	98
	colm	24
	synt	any
	invoke	2
	line	98
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	pnull
	var	1
	int	1
	line	100
	colm	5
	synt	any
	subsc
	int	2
	line	100
	colm	8
	synt	any
	subsc
	var	0
	line	100
	colm	12
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	mark	L4
	var	1
	line	102
	colm	4
	synt	any
	pret
lab L4
	synt	any
	pfail
	unmark
lab L3
	pnull
	line	104
	colm	1
	synt	any
	pfail
	end
proc set_rotate
	local	0,001000,x
	local	1,000020,M
	local	2,000000,identity_matrix
	local	3,000000,cos
	local	4,000000,sin
	con	0,002000,1,3
	con	1,002000,1,1
	con	2,002000,1,2
	declend
	line	106
	colm	11
	synt	any
	mark	L1
	pnull
	var	1
	var	2
	int	0
	int	0
	line	109
	colm	24
	synt	any
	invoke	2
	line	109
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	pnull
	var	1
	int	1
	line	110
	colm	5
	synt	any
	subsc
	int	1
	line	110
	colm	8
	synt	any
	subsc
	var	3
	var	0
	line	110
	colm	18
	synt	any
	invoke	1
	line	110
	colm	12
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	pnull
	pnull
	var	1
	int	2
	line	111
	colm	5
	synt	any
	subsc
	int	2
	line	111
	colm	8
	synt	any
	subsc
	pnull
	pnull
	var	1
	int	1
	line	111
	colm	16
	synt	any
	subsc
	int	1
	line	111
	colm	19
	synt	any
	subsc
	line	111
	colm	12
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	pnull
	pnull
	pnull
	var	1
	int	1
	line	112
	colm	5
	synt	any
	subsc
	int	2
	line	112
	colm	8
	synt	any
	subsc
	var	4
	var	0
	line	112
	colm	18
	synt	any
	invoke	1
	line	112
	colm	12
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	pnull
	pnull
	pnull
	var	1
	int	2
	line	113
	colm	5
	synt	any
	subsc
	int	1
	line	113
	colm	8
	synt	any
	subsc
	pnull
	pnull
	pnull
	var	1
	int	1
	line	113
	colm	17
	synt	any
	subsc
	int	2
	line	113
	colm	20
	synt	any
	subsc
	line	113
	colm	15
	synt	any
	neg
	line	113
	colm	12
	synt	any
	asgn
	unmark
lab L5
	mark	L6
	mark	L7
	var	1
	line	115
	colm	4
	synt	any
	pret
lab L7
	synt	any
	pfail
	unmark
lab L6
	pnull
	line	117
	colm	1
	synt	any
	pfail
	end
