DisplayTransform.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 17 Nov 2017 11:52:18 -0300
branchjv
changeset 8223 d0117698147d
parent 7414 0dd19064cf94
child 7858 a32d811bda6f
child 8595 7f9b84978a2e
permissions -rw-r--r--
`SimpleView`: added `#automationUUID` and `#automationUUID:` ...as aliases to `#uuid` and `#uuid:`. These can be used later in automated UI testing.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
     1
"{ Encoding: utf8 }"
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
     2
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:libview' }"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
     5
"{ NameSpace: Smalltalk }"
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
     6
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
Object subclass:#DisplayTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	instanceVariableNames:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	category:'Graphics-Transformations'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
DisplayTransform comment:'This class represents a base for generic transformations of 2D points between different coordinate systems (including scaling and rotation). The transformations map objects between one coordinate system and another where it is assumed that a nested hierarchy of transformations can be defined.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
It is assumed that transformations deal with Integer points. All transformations should return Integer coordinates (even though float points may be passed in as argument).
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
Compositions of transformations MUST work in the following order. A ''global'' transformation (the argument in #composedWithGlobal:) is defined as a transformation that takes place between the receiver (the ''local'') transformation and any ''global'' point computations, whereas a ''local'' transformation (e.g., the argument in #composedWithLocal:) takes place between the receiver (''global'') and any ''local'' points. For the transformation methods this means that combining a global and a local transformation will result in the following order:
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
		globalPointToLocal: globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
			"globalPoint -> globalTransform -> localTransform -> locaPoint"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
			^localTransform globalPointToLocal:
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
				(globalTransform globalPointToLocal: globalPoint)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		localPointToGlobal: localPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
			"localPoint -> localTransform -> globalTransform -> globalPoint"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
			^globalTransform localPointToGlobal:
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
				(localTransform localPointToGlobal: localPoint)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!DisplayTransform class methodsFor:'instance creation'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
identity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	^self new setIdentity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!DisplayTransform methodsFor:'accessing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
inverseTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	"Return the inverse transformation of the receiver"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
!DisplayTransform methodsFor:'composing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
composedWithGlobal: aTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	"Return the composition of the receiver and the global transformation passed in.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	A 'global' transformation is defined as a transformation that takes place
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	between the receiver (the 'local') transformation and any 'global' point
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	computations, e.g., for the methods
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		globalPointToLocal: globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
			globalPoint -> globalTransform -> localTransform -> locaPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
		localPointToGlobal: localPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
			localPoint -> localTransform -> globalTransform -> globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
		"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^aTransformation composedWithLocal: self
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
composedWithLocal: aTransformation
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    66
        "Return the composition of the receiver and the local transformation passed in.
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    67
        A 'local' transformation is defined as a transformation that takes place
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    68
        between the receiver (the 'global') transformation and any 'local' point
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    69
        computations, e.g., for the methods
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    71
                globalPointToLocal: globalPoint
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    72
                        globalPoint -> globalTransform -> localTransform -> locaPoint
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    74
                localPointToGlobal: localPoint
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    75
                        localPoint -> localTransform -> globalTransform -> globalPoint
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    77
                "
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    78
        self isIdentity ifTrue:[^ aTransformation].
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    79
        aTransformation isIdentityTransformation ifTrue:[^ self].
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    80
        ^ CompositeTransform new globalTransform: self
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
    81
                                                        localTransform: aTransformation
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
!DisplayTransform methodsFor:'converting'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
asCompositeTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	"Represent the receiver as a composite transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	^CompositeTransform new
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
		globalTransform: self
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
		localTransform: self species identity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
asMatrixTransform2x3
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	"Represent the receiver as a 2x3 matrix transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
!DisplayTransform methodsFor:'initialize'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
setIdentity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    "Initialize the receiver to the identity transformation (e.g., not affecting points)"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    ^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!DisplayTransform methodsFor:'testing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
isCompositeTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	"Return true if the receiver is a composite transformation.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	Composite transformations may have impact on the accuracy."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	^false
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   114
isIdentityTransformation
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   115
    "Return true if the receiver is the identity transform; that is, if applying to a point returns the point itself."
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   116
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   117
    ^ self subclassResponsibility
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
isMatrixTransform2x3
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
	"Return true if the receiver is 2x3 matrix transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	^false
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
isMorphicTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	"Return true if the receiver is a MorphicTransform, that is specifies the transformation values explicitly."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
	^false
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
isNoScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    "return true if the identity scale is in effect (i.e. saleFactor is 1);
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
     return false, otherwise."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   134
    ^ self subclassResponsibility
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
noScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "return true if the identity scale is in effect (i.e. saleFactor is 1);
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
     return false, otherwise.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
     Obsolete: use isNoScale"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    <resource: #obsolete>
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    ^ self isNoScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!DisplayTransform methodsFor:'transforming points'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
applyInverseTo:aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    ^ self invertPoint: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
applyScaleX:aNumber
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    ^ (self transformPoint: aNumber @ 0) x
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
applyScaleY:aNumber
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    ^ (self transformPoint: 0 @ aNumber) y
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
applyTo:aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    ^ self transformPoint: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
globalPointToLocal: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	"Transform aPoint from global coordinates into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
globalPointsToLocal: inArray
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	"Transform all the points of inArray from global into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
	^inArray collect:[:pt| self globalPointToLocal: pt]
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
localPointToGlobal: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
	"Transform aPoint from local coordinates into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
localPointsToGlobal: inArray
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	"Transform all the points of inArray from local into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	^inArray collect:[:pt| self localPointToGlobal: pt]
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
!DisplayTransform methodsFor:'transforming rects'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
globalBoundsToLocal: aRectangle
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
	"Transform aRectangle from global coordinates into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
	^Rectangle encompassing: (self globalPointsToLocal: aRectangle corners)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
localBoundsToGlobal: aRectangle
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
	"Transform aRectangle from local coordinates into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
	^Rectangle encompassing: (self localPointsToGlobal: aRectangle corners)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
!DisplayTransform class methodsFor:'documentation'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
version
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   200
    ^ '$Header$'
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
version_CVS
7414
0dd19064cf94 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6698
diff changeset
   204
    ^ '$Header$'
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206