AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     R0 =     pointer to TMmemoryblock
     R2 =     pointer to objects to alter
     R4 =     reason code
     R5 =     pointer to transform block

This call allows you to move, rotate and scale objects. It works over selected objects (so you first have to select something) but it can affect numbered groups only (both selected or unselected).
Gemini_Transform memory block
The transformation block is filled with geometric data for the operation (all the values are multiplied by 2^17, i.e. original value = 0.5, value to store = 0.5 * 2^17)

Offset     Translate     Scale     General transform

+0     amount to add to X coord     X coord of the point around which the operation takes place
+4     amount to add to Y coord     Y coord of the point around which the operation takes place
+8     amount to add to Z coord     Z coord of the point around which the operation takes place
+12     -     X scale factor     A1,1 component of the transformation matrix
+16     -     Y scale factor     A2,1
+20     -     Z scale factor     A3,1
+24     -     -     A1,2
+28     -     -     A2,2
+32     -     -     A3,2
+36     -      -     A1,3
+40     -     -     A2,3
+44     -     -     A3,3
+48     -     -     amount to add to X coord
+52     -     -     amount to add to Y coord
+56     -     -     amount to add to Z coord

The general transformation acts as follows: first of all the object is modified accordingly to the 3x3 matrix (around the specified point), then it is translated by the amount specified in (+48, +52, +56)
Gemini_Transform objects to alter
Code     meaning

0     modify selected objects (you have to select something first)
n     logical number of the group to be modified (no need to select it)
Gemini_Transform reason code
Reason     meaning

0     translate objects/group
1     scale objects/group
2     transform objects/group using a general transformation matrix

[sh-index] Back to list of manuals