DisplayTransform.st
author mawalch
Thu, 07 Jul 2016 20:21:57 +0200
changeset 7408 d1cebfa53c19
parent 6698 80a994c909c6
child 7414 0dd19064cf94
permissions -rw-r--r--
#OTHER by mawalch Spelling fixes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6698
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libview' }"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#DisplayTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Graphics-Transformations'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
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
    11
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
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
    13
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
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
    15
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
		globalPointToLocal: globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
			"globalPoint -> globalTransform -> localTransform -> locaPoint"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
			^localTransform globalPointToLocal:
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
				(globalTransform globalPointToLocal: globalPoint)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
		localPointToGlobal: localPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
			"localPoint -> localTransform -> globalTransform -> globalPoint"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
			^globalTransform localPointToGlobal:
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
				(localTransform localPointToGlobal: localPoint)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!DisplayTransform class methodsFor:'instance creation'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
identity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	^self new setIdentity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!DisplayTransform methodsFor:'accessing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
inverseTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	"Return the inverse transformation of the receiver"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!DisplayTransform methodsFor:'composing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
composedWithGlobal: aTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	"Return the composition of the receiver and the global transformation passed in.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	A 'global' transformation is defined as a transformation that takes place
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	between the receiver (the 'local') transformation and any 'global' point
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	computations, e.g., for the methods
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		globalPointToLocal: globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
			globalPoint -> globalTransform -> localTransform -> locaPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
		localPointToGlobal: localPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
			localPoint -> localTransform -> globalTransform -> globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
		"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	^aTransformation composedWithLocal: self
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
composedWithLocal: aTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	"Return the composition of the receiver and the local transformation passed in.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	A 'local' transformation is defined as a transformation that takes place
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	between the receiver (the 'global') transformation and any 'local' point
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	computations, e.g., for the methods
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
		globalPointToLocal: globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
			globalPoint -> globalTransform -> localTransform -> locaPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
		localPointToGlobal: localPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
			localPoint -> localTransform -> globalTransform -> globalPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
		"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
	self isIdentity ifTrue:[^ aTransformation].
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
	aTransformation isIdentity ifTrue:[^ self].
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ CompositeTransform new globalTransform: self
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
							localTransform: aTransformation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
!DisplayTransform methodsFor:'converting'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
asCompositeTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
	"Represent the receiver as a composite transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	^CompositeTransform new
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
		globalTransform: self
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
		localTransform: self species identity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
asMatrixTransform2x3
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	"Represent the receiver as a 2x3 matrix transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
!DisplayTransform methodsFor:'initialize'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
setIdentity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    "Initialize the receiver to the identity transformation (e.g., not affecting points)"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    ^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!DisplayTransform methodsFor:'testing'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
isCompositeTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	"Return true if the receiver is a composite transformation.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	Composite transformations may have impact on the accuracy."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
	^false
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
isIdentity
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	"Return true if the receiver is the identity transform; that is, if applying to a point returns the point itself."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
isMatrixTransform2x3
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	"Return true if the receiver is 2x3 matrix transformation"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	^false
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
isMorphicTransform
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
	"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
   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
isNoScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "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
   127
     return false, otherwise."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    |s|
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    s := self scale.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    ^ s x = 1 and:[s y = 1]
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
isPureTranslation
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
	"Return true if the receiver specifies no rotation or scaling."
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
noScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
    "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
   142
     return false, otherwise.
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
     Obsolete: use isNoScale"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    <resource: #obsolete>
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    ^ self isNoScale
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
!DisplayTransform methodsFor:'transforming points'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
applyInverseTo:aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    ^ self invertPoint: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
applyScaleX:aNumber
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    ^ (self transformPoint: aNumber @ 0) x
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
applyScaleY:aNumber
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    ^ (self transformPoint: 0 @ aNumber) y
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
applyTo:aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    ^ self transformPoint: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
globalPointToLocal: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
	"Transform aPoint from global coordinates into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
globalPointsToLocal: inArray
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	"Transform all the points of inArray from global into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
	^inArray collect:[:pt| self globalPointToLocal: pt]
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
localPointToGlobal: aPoint
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
	"Transform aPoint from local coordinates into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
	^self subclassResponsibility
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
localPointsToGlobal: inArray
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	"Transform all the points of inArray from local into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
	^inArray collect:[:pt| self localPointToGlobal: pt]
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
!DisplayTransform methodsFor:'transforming rects'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
globalBoundsToLocal: aRectangle
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
	"Transform aRectangle from global coordinates into local coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
	^Rectangle encompassing: (self globalPointsToLocal: aRectangle corners)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
localBoundsToGlobal: aRectangle
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
	"Transform aRectangle from local coordinates into global coordinates"
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
	^Rectangle encompassing: (self localPointsToGlobal: aRectangle corners)
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
!DisplayTransform class methodsFor:'documentation'!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
version
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    ^ '$Header: /cvs/stx/stx/libview/DisplayTransform.st,v 1.1 2014-12-21 22:27:44 cg Exp $'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
!
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
version_CVS
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    ^ '$Header: /cvs/stx/stx/libview/DisplayTransform.st,v 1.1 2014-12-21 22:27:44 cg Exp $'
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
! !
80a994c909c6 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209