<<<<<<<<<<<<<<<<<

transform(oscar) Animation transform(oscar)

NAME

transform - object to perform 3D coordinate transforms

DESCRIPTION

The transform class provides a stack-based 3D coordinate transform object. The current transformation matrix (CTM) is the top element in the matrix stack.

SUPERCLASS

object

INSTANCE VARIABLES

pre_multiply_flag determines the ordering of the two matrices being multiplied.

vector 3D vector to be pre- or post-multiplied by the current transformation matrix.

normal 3D normal vector to be transformed by the current transformation matrix.

stack_size determines the size of future transform objects. It defaults to 20. Modifying it is only useful if the new: or new! messages are sent to a transform instance, as it can't be modified in the transform class.

MESSAGES

concatenate: (matrix) Multiply the CTM by the argument.

euler:

identity! Set the CTM to the identity matrix.

is_identity? Returns 1 (true) if the CTM is equal to the identity matrix.

matrix= (matrix) Set the CTM to the argument.

matrix? Return the CTM.

normal= (x,y,z) Give the transform object a normal (x,y,z) to transform.

normal? Return the transformation of the last normal given

as an argument to the normal= message.

orientation! Print the CTM's orientation (x, y, and z rotation).

orientation? Return the CTM's orientation (x, y, and z rotation).

pop! Pop the CTM, replacing it with the next matrix down on the stack.

position? Return the CTM's translation.

post_multiply! Tell the transform object to perform the concatenate: method as CTM X matrix.

pre_multiply! Tell the transform object to perform the concatenate: method as matrix X CTM.

push! Push the matrix stack. The CTM will presumably be replaced by a later identity!, matrix=, or other CTM-modifying operation.

reverse_matrix? Return the "reverse" of the CTM.

inverse_matrix? Return the true inverse of the CTM.

inverse! inverts the current matrix.

rotate_wxyz: (w,x,y,z) Rotate the CTM by w degrees about the vector (x,y,z).

rotate_x: d Rotate the CTM d degrees about the X axis.

rotate_y: d Rotate the CTM d degrees about the Y axis.

rotate_z: d Rotate the CTM d degrees about the Z axis.

scale: (x,y,z) Scale the CTM by the argument vector given.

scale? Return the (x,y,z) scale factor of the CTM.

translate: (x,y,z) Translate the CTM by (x,y,z).

transpose_matrix? Returns transpose of CTM.

vector= (x,y,z) Give the transform object a vector (x,y,z) to transform.

vector? Return the transformation of the last vector given as an argument to the vector= message.

EXAMPLES


Please send comments and suggestions to
consult@rpi.edu