# orientlib: Support for
Orientation Data

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")
```