https://github.com/ianmackenzie/elm-geometry-linear-algebra-interop
Interop support for ianmackenzie/elm-geometry and elm-community/linear-algebra
https://github.com/ianmackenzie/elm-geometry-linear-algebra-interop
Last synced: about 2 months ago
JSON representation
Interop support for ianmackenzie/elm-geometry and elm-community/linear-algebra
- Host: GitHub
- URL: https://github.com/ianmackenzie/elm-geometry-linear-algebra-interop
- Owner: ianmackenzie
- License: mpl-2.0
- Created: 2017-08-10T17:01:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-13T03:17:39.000Z (over 1 year ago)
- Last Synced: 2025-03-14T20:13:08.103Z (about 2 months ago)
- Language: Elm
- Homepage:
- Size: 35.2 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# elm-geometry-linear-algebra-interop
This package supports interop between [`ianmackenzie/elm-geometry`](http://package.elm-lang.org/packages/ianmackenzie/elm-geometry/latest)
and [`elm-explorations/linear-algebra`](http://package.elm-lang.org/packages/elm-explorations/linear-algebra/latest).
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 matricesThis is important for working with WebGL, since the [`elm-explorations/webgl`](http://package.elm-lang.org/packages/elm-explorations/webgl/latest)
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. 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.## Installation
```
elm install ianmackenzie/elm-geometry-linear-algebra-interop
```## Documentation
[Full API documentation](http://package.elm-lang.org/packages/ianmackenzie/elm-geometry-linear-algebra-interop/1.0.2)
is available.## Usage details
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```elm
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:```elm
Point3d.toVec3 Point3d.origin
--> Math.Vector3.vec3 0 0 0
```## Questions? Comments?
Please [open a new issue](https://github.com/ianmackenzie/elm-geometry-linear-algebra-interop/issues)
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](http://elmlang.herokuapp.com/),
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](https://discourse.elm-lang.org/) forumsHave fun, and don't be afraid to ask for help!