This package supports interop between ianmackenzie/elm-geometry
and elm-explorations/linear-algebra
.
You can:
- Convert
elm-geometry
Point2d
,Point3d
,Vector2d
,Vector3d
,Direction2d
andDirection3d
values to and fromlinear-algebra
Vec2
,Vec3
andVec4
values - Convert
elm-geometry
Frame3d
values to the equivalentlinear-algebra
Mat4
transformation matrices - Transform
elm-geometry
Point3d
andVector3d
values usinglinear-algebra
Mat4
transformation matrices
This is important for working with WebGL, since the elm-explorations/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. 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 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
Have fun, and don't be afraid to ask for help!