2.3.9.3 EmfPlusRotateWorldTransform Record

The EmfPlusRotateWorldTransform record performs a rotation on the current world space transform.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Type

Flags

Size

DataSize

Angle

Type (2 bytes): An unsigned integer that identifies this record type as EmfPlusRotateWorldTransform from the RecordType enumeration. The value MUST be 0x402F.

Flags (2 bytes): An unsigned integer that provides information about how the operation is to be performed, and about the structure of the record.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

X

X

A

X

X

X

X

X

X

X

X

X

X

X

X

X

X (1 bit): Reserved and MUST be ignored.

A (1 bit): If set, the transform matrix is post-multiplied. If clear, it is pre-multiplied.

Size (4 bytes): An unsigned integer that specifies the 32-bit-aligned number of bytes in the entire record, including the 12-byte record header and record-specific data. For this record type, the value MUST be 0x00000010.

DataSize (4 bytes): An unsigned integer that specifies the 32-bit-aligned number of bytes of record-specific data that follows. For this record type, the value MUST be 0x00000004.

Angle (4 bytes): A floating-point value that specifies the angle of rotation in degrees. The operation is performed by constructing a new transform matrix from the following diagram.

Rotation Transform Matrix

Figure 3: Rotation Transform Matrix

The current world space transform is multiplied by this matrix, and the result becomes the new current world space transform. The Flags field determines the order of multiplication.

See section 2.3.9 for the specification of additional transform record types.