TL;DR
elm/jsonのJson.Encode/Json.Decodeと同じ実装パターンで、OBJ ファイルをエンコード・デコードする Elm のライブラリ elm-obj-file を作った。- デコーダは
elm/jsonと同じく合成でき、座標系を変換する関数も用意されている。
内容
デコーダーパターン
Elm の elm/json にある Json.Encode / Json.Decode(JSON デコーダの解説)と同じ実装パターンで、Blender などで使われる OBJ ファイルをエンコード・デコードするライブラリ elm-obj-file を開発した。デコーダは elm/json と同じく、Obj.Decode.map や map2 などで合成できる。
座標系の変換
OBJ ファイルをそのまま読み込むと座標系が異なり、モデルが横倒しになることがあった。そのため、texturedFacesIn のような、座標系を変換する関数も提供した。
その他の API
プリミティブなデコーダとして polylines や objectNames がある。高度なデコーダとして、oneOf、succeed、fail、andThen、combine がある。