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