Adobe 0046100128056 Scripting Guide - Page 65

Coordinate spaces

Page 65 highlights

CHAPTER 5: Working with Page Items Transforming Page Items 65 //Note that transformValuesOf() always returns an array //containing a single transformationMatrix. var myTransformArray = myRectangle.transformValuesOf(CoordinateSpaces.parentCoordinates); var myTransformationMatrix = myTransformArray[0]; var myRotationAngle = myTransformationMatrix.counterclockwiseRotationAngle; var myShearAngle = myTransformationMatrix.clockwiseShearAngle; var myXScale = myTransformationMatrix.horizontalScaleFactor; var myYScale = myTransformationMatrix.verticalScaleFactor; var myXTranslate = myTransformationMatrix.horizontalTranslation; var myYTranslate = myTransformationMatrix.verticalTranslation; var myString = "Rotation Angle: " + myRotationAngle + "\r"; myString += "Shear Angle: " + myShearAngle + "\r"; myString += "Horizontal Scale Factor: " + myXScale + "\r"; myString += "Vertical Scale Factor: " + myYScale + "\r"; myString += "Horizontal Translation: " + myXTranslate + "\r"; myString += "Vertical Translation: " + myYTranslate + "\r"; alert(myString); NOTE: The values in the horizontal- and vertical-translation fields of the transformation matrix returned by this method are the location of the upper-left anchor of the object, in pasteboard coordinates. Coordinate spaces In the transformation scripts we presented earlier, you might have noticed the CoordinateSpaces.pasteboardCoordinates enumeration provided as a parameter for the transform method. This parameter determines the system of coordinates, or coordinate space, in which the transform operation occurs. The coordinate space can be one of the following values: X CoordinateSpaces.pasteboardCoordinates is the coordinate space of the entire InDesign document. This coordinate space extends behind all spreads in a document. It does not correspond to InDesign's rulers or zero point, nor does it have anything to do with the pasteboard area you can see around pages in the InDesign user interface. Transformations applied to objects have no effect on this coordinate space (e.g., the angle of the horizontal and vertical axes do not change). X CoordinateSpaces.parentCoordinates is the coordinate space of the parent of the object. Any transformations applied to the parent affect the parent coordinates; for example, rotating the parent object changes the angle of the horizontal and vertical axes of this coordinate space. In this case, the parent object refers to the group or page item containing the object; if the parent of the object is a page or spread, parent coordinates are the same as spread coordinates. X CoordinateSpaces.innerCoordinates is the coordinate space in which the object itself was created. X CoordinateSpaces.spreadCoordinates is the coordinate space of the spread. The origin of this space is at the center of the spread, and does not correspond to the rulers you see in the user interface. The following script shows the differences between the coordinate spaces. (For the complete script, see CoordinateSpaces.)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209

C
HAPTER
5: Working with Page Items
Transforming Page Items
65
//Note that transformValuesOf() always returns an array
//containing a single transformationMatrix.
var myTransformArray =
myRectangle.transformValuesOf(CoordinateSpaces.parentCoordinates);
var myTransformationMatrix = myTransformArray[0];
var myRotationAngle = myTransformationMatrix.counterclockwiseRotationAngle;
var myShearAngle = myTransformationMatrix.clockwiseShearAngle;
var myXScale = myTransformationMatrix.horizontalScaleFactor;
var myYScale = myTransformationMatrix.verticalScaleFactor;
var myXTranslate = myTransformationMatrix.horizontalTranslation;
var myYTranslate = myTransformationMatrix.verticalTranslation;
var myString = "Rotation Angle: " + myRotationAngle + "\r";
myString += "Shear Angle: " + myShearAngle + "\r";
myString += "Horizontal Scale Factor: " + myXScale + "\r";
myString += "Vertical Scale Factor: " + myYScale + "\r";
myString += "Horizontal Translation: " + myXTranslate + "\r";
myString += "Vertical Translation: " + myYTranslate + "\r";
alert(myString);
N
OTE
:
The values in the horizontal- and vertical-translation fields of the transformation matrix returned by
this method are the location of the upper-left anchor of the object, in pasteboard coordinates.
Coordinate spaces
In the transformation scripts we presented earlier, you might have noticed the
CoordinateSpaces.pasteboardCoordinates
enumeration provided as a parameter for the transform
method. This parameter determines the system of coordinates, or
coordinate space
, in which the transform
operation occurs. The coordinate space can be one of the following values:
X
CoordinateSpaces.pasteboardCoordinates
is the coordinate space of the entire InDesign
document. This coordinate space extends behind all spreads in a document. It does not correspond to
InDesign’s rulers or zero point, nor does it have anything to do with the pasteboard area you can see
around pages in the InDesign user interface. Transformations applied to objects have no effect on this
coordinate space (e.g., the angle of the horizontal and vertical axes do not change).
X
CoordinateSpaces.parentCoordinates
is the coordinate space of the parent of the object. Any
transformations applied to the parent affect the parent coordinates; for example, rotating the parent
object changes the angle of the horizontal and vertical axes of this coordinate space. In this case, the
parent object refers to the group or page item containing the object; if the parent of the object is a
page or spread, parent coordinates are the same as spread coordinates.
X
CoordinateSpaces.innerCoordinates
is the coordinate space in which the object itself was
created.
X
CoordinateSpaces.spreadCoordinates
is the coordinate space of the spread. The origin of this
space is at the center of the spread, and does not correspond to the rulers you see in the user interface.
The following script shows the differences between the coordinate spaces. (For the complete script, see
CoordinateSpaces.)