CompositeTransform.st
author Claus Gittinger <cg@exept.de>
Wed, 22 Feb 2017 12:15:04 +0100
changeset 3911 57fffd545c0b
parent 1250 76824ea90b46
child 3855 1db7742d33ad
child 3930 1d08dbcfcbf1
permissions -rw-r--r--
#FEATURE by cg class: MacOSXIconReader added: #read_ic12_from: #read_ic13_from: #read_ic14_from: comment/format in: #common_read_paletteImage_from:size:width:height:depth: #read_ic11_from: changed: #readSingleIcon:from: #read_l8mk_from:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1250
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
DisplayTransform subclass:#CompositeTransform
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
	instanceVariableNames:'globalTransform localTransform'
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Graphics-Transformations'
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
CompositeTransform comment:'A composite transform provides the effect of several levels of coordinate transformations.'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!CompositeTransform methodsFor:'accessing'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
inverseTransformation
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	"Return the inverse transformation of the receiver"
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	^self species new
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
		globalTransform: localTransform inverseTransformation
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
		localTransform: globalTransform inverseTransformation! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!CompositeTransform methodsFor:'converting'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
asCompositeTransform
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	^self!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
asMatrixTransform2x3
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	^globalTransform asMatrixTransform2x3
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
		composedWithLocal: localTransform asMatrixTransform2x3! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!CompositeTransform methodsFor:'initialization'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
globalTransform: gt localTransform: lt
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	globalTransform _ gt.
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	localTransform _ lt! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!CompositeTransform methodsFor:'testing'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
isCompositeTransform
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	^true!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
isIdentity
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^ globalTransform isIdentity and: [localTransform isIdentity]!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
isPureTranslation
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ globalTransform isPureTranslation and: [localTransform isPureTranslation]! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!CompositeTransform methodsFor:'transformations'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
invert: aPoint
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	^ globalTransform invert: (localTransform invert: aPoint)!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
scale
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	^ localTransform scale * globalTransform scale!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
transform: aPoint
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	^ localTransform transform: (globalTransform transform: aPoint)! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!CompositeTransform methodsFor:'transforming points'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
globalPointToLocal: aPoint
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
	"Transform aPoint from global coordinates into local coordinates"
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	^localTransform globalPointToLocal:
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
		(globalTransform globalPointToLocal: aPoint)!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
localPointToGlobal: aPoint
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	"Transform aPoint from global coordinates into local coordinates"
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	^globalTransform localPointToGlobal:
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
		(localTransform localPointToGlobal: aPoint)! !
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!CompositeTransform class methodsFor:'documentation'!
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
version
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    ^ '$Header: /cvs/stx/stx/libview2/CompositeTransform.st,v 1.1 1999-10-06 22:23:08 cg Exp $'
76824ea90b46 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
! !