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 がある。

キーワード

関連