This package contains methods for working with orientation data, i.e. data from SO(3). The basic abstract class is the `"orientation"`

; there are several concrete classes (with constructions `rotmatrix()`

, `rotvector()`

, `eulerzyx()`

, `eulerzxz()`

, `quaternion()`

, `skewmatrix()`

and `skewvector()`

) storing different representations of orientations.

Methods are defined to get the length of a vector of orientations, as well as to extract and replace elements, and to multiply orientations and raise them to real powers.

There are also utility functions `rotation.distance()`

, `rotation.angle()`

, `nearest.orthog()`

and `nearest.SO3()`

.

There is a plotting method `boat3d()`

to display orientation data in a 3D plot, and a linear modelling function `orientlm()`

.

## Installation

You can install the release version of `orientlib`

using

`install.packages("orientlib")`

You can install the development version of `orientlib`

from GitHub with:

```
# install.packages("devtools")
devtools::install_github("dmurdoch/orientlib")
```