# jit.quat

Quaternion multiplication

## Description

jit.quat will perform quaternion multiplication, with optional normalization of the input quaternions. In relation to 3D transforms, quaternion multiplication is the concatenation of two orientations.

## Examples

## Discussion

A quaternion is a mathematical construct that is a four dimensional vector, and can be visualized as a rotation around an arbitrary axis. Quaternions are a useful representation of an orientation in 3D space.

## Attributes

### inverse [4 floats]

The output quaternion's opposite rotation.

### normalize [int]

Determines whether or not the input quaternions are normalized before the multiplication. (default = 0)

### quat1 [4 floats]

Sets the first operand (default = 0 0 0 1)

### quat2 [4 floats]

Sets the second operand (default = 0 0 0 1)

### quatout [4 floats]

The resulting quaternion after the multiplication

### xaxis [3 floats]

the output quaternion's rotation matrix X axis.

### yaxis [3 floats]

the output quaternion's rotation matrix Y axis.

### zaxis [3 floats]

the output quaternion's rotation matrix Z axis.

### Common Box Attributes

### annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

### background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

### color [4 floats]

Sets the color for the object box outline.

### fontface [int]

Sets the type style used by the object. The options are:

plain

bold

italic

bold italic

Possible values:

0 = 'regular'

1 = 'bold'

2 = 'italic'

3 = 'bold italic'

### fontname [symbol]

Sets the object's font.

### fontsize [float]

Sets the object's font size (in points).

Possible values:

'8'

'9'

'10'

'11'

'12'

'13'

'14'

'16'

'18'

'20'

'24'

'30'

'36'

'48'

'64'

'72'

### hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

### hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

### ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

### patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

### position [2 floats]

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

### presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

### presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

### rect [4 floats]

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

### size [2 floats]

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

### textcolor [float]

Sets the color for the object's text in RGBA format.

### textjustification [int]

Text Justification

Possible values:

0 = 'left'

1 = 'center'

2 = 'right'

### varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

## Messages

### bang

### list

#### Arguments

y [float]

z [float]

w [float]

In right inlet: A four element list of floating point numbers sets the second operand.

## See Also

Name | Description |
---|---|

jit.quat2axis | Quaternion to angle-axis conversion |

jit.axis2quat | Convert angle-axis to quaternion |

jit.quat2euler | Quaternion to Euler conversion |

jit.euler2quat | Convert Euler angles to quaternion |

jit.anim.node | Perform hierarchical transformation |