# Orientation classes

### Description

An vector of orientations, each represented by a vector of numbers.
Each of these types stores orientations as rows of a matrix in slot `x`

.

The `eulerzyx`

class uses 3 Euler angles in the roll-pitch-yaw scheme
(rotation about Z axis, then Y axis, then X axis).

The `eulerzxz`

class uses 3 Euler angles in the X system scheme
(rotation about Z axis, then X axis, then Z axis again).

The `rotvector`

class uses the 9 components of a 3 x 3 rotation matrix, stored
in column-major order.

The `quaternion`

class uses the 4 components of a unit quaternion.

The `skewvector`

class uses the 3 non-zero components of a skew-symmetric matrix,
where `(x,y,z)`

stores the matrix `((0, -z, y), (z, 0, -x), (-y, x, 0))`

.

### Objects from the Class

Objects of each class can be created by calls to the corresponding constructor
functions: `eulerzyx`

, `eulerzxz`

, `rotvector`

,
`quaternion`

, `skewmatrix`

and `skewvector`

.

### Slots

`x`

:An n x m

`matrix`

object holding the vector representations, where m is 3, 4, or 9.

### Extends

Class `"orientation"`

, directly.
Class `"vector"`

, by class "orientation".

### Methods

- [, [<-
Extract or assign to subvector

- [[, [[<-
Extract or assign to an entry

- length
The length of the

`orientation`

vector- coerce
Coerce methods are defined to convert all

`orientation`

descendants from one to another, and to coerce an appropriately shaped matrix or array to a`rotmatrix`

### Author(s)

Duncan Murdoch

### See Also

Constructor and coercion functions `rotmatrix`

, `eulerzyx`

, `eulerzxz`

, `rotvector`

,
`quaternion`

, and `skewvector`

.

Classes `matrix-classes`

, `orientation-class`

.

### Examples

1 2 3 4 5 6 7 | ```
x <- eulerzyx(0,pi/4,0)
x
eulerzxz(x)
rotmatrix(x)
rotvector(x)
quaternion(x)
skewvector(x)
``` |