This is an alternative site for discovering Elm packages.
You may be looking for the
official Elm package site
instead.

Interop support for ianmackenzie/elm-geometry and elm-community/linear-algebra

version | 1.0.0 |

license | MPL-2.0 |

native-modules | False |

elm-version | 0.18.0 <= v < 0.19.0 |

Tag | 1.0.0 |

Committed At | 2018-07-01 17:19:55 UTC |

This package supports interop between `ianmackenzie/elm-geometry`

and `elm-community/linear-algebra`

.
You can:

- Convert
`elm-geometry`

`Point2d`

,`Point3d`

,`Vector2d`

,`Vector3d`

,`Direction2d`

and`Direction3d`

values to and from`linear-algebra`

`Vec2`

,`Vec3`

and`Vec4`

values - Convert
`elm-geometry`

`Frame3d`

values to the equivalent`linear-algebra`

`Mat4`

transformation matrices - Transform
`elm-geometry`

`Point3d`

and`Vector3d`

values using`linear-algebra`

`Mat4`

transformation matrices

This is important for working with WebGL, since the `elm-community/webgl`

package requires using `linear-algebra`

types when defining meshes and shaders.
This package may also be useful when using other packages that accept or return
`linear-algebra`

types, such as `mkovacs/quaternion`

.
However, you shouldn't need this package for general use - you should be able to
do most geometric transformations you need (rotations, translations etc.) using
`elm-geometry`

itself.

```
elm package install ianmackenzie/elm-geometry-linear-algebra-interop
```

Full API documentation is available.

The modules in this package are all designed to be imported using `as`

to
'merge' them with the base `elm-geometry`

modules; for example, using

```
import Point3d exposing (Point3d)
import Geometry.Interop.LinearAlgebra.Point3d as Point3d
```

will let you use functions from both modules as if they were part of one big
`Point3d`

module. For example, you could use the `toVec3`

function from this
package's `Point3d`

module with the `origin`

value from the base `Point3d`

module as if they were part of the same module:

```
Point3d.toVec3 Point3d.origin
--> Math.Vector3.vec3 0 0 0
```

Please open a new issue if you run into a bug, if any documentation is missing/incorrect/confusing, or if there's a new feature that you would find useful. For general questions about using this package, try:

- Joining the
**#geometry**channel on the Elm Slack, or sending me (**@ianmackenzie**) a message - even if you don't have any particular questions right now, it would be great to know what you're hoping to do with the package! - Posting to the Elm Discourse forums
- Or if you happen to be in the New York area, come on out to the Elm NYC meetup =)

You can also find me on Twitter (@ianemackenzie),
where I occasionally post `elm-geometry`

-related stuff like demos or new
releases. Have fun, and don't be afraid to ask for help!